निम्नलिखित दृष्टिकोण सभी ब्राउज़रों में काम करता है:
एक PhaseListener लिखें:
public class ContentTypePhaseListener implements PhaseListener {
public PhaseId getPhaseId()
{
return PhaseId.RENDER_RESPONSE;
}
public void afterPhase(PhaseEvent event)
{
}
public void beforePhase(PhaseEvent event)
{
FacesContext facesContext = event.getFacesContext();
HttpServletResponse response = (HttpServletResponse) facesContext
.getExternalContext().getResponse();
response.addHeader("Content-Type", "text/html; charset=UTF-8");
}
}
और चेहरे-context.xml में इसे पंजीकृत:
<lifecycle>
<phase-listener>com.mycompnay.listener.ContentTypePhaseListener </phase-listener>
</lifecycle>
यह समाधान काम के लिए आवश्यक है आईफोन और आईपैड के पुराने संस्करणों के साथ। ऐसा लगता है कि बाद के ब्रोवर डिफ़ॉल्ट सामग्री-प्रकार को ओवर-राइड कर रहे हैं और अपना सर्वश्रेष्ठ अनुमान लगा रहे हैं। लेकिन पुराना ब्राउज़र सामग्री-प्रकार शीर्षलेख और हेडर की अपेक्षा कर रहा था। महान समाधान जो सरल था। – JeffJak