質問
私は強く、JSF 2.0ののContent-Type のヘッダを上書きする必要があります。それはデフォルトの
Content-Type:application/xhtml+xml; charset=UTF-8
しかし、私の必要性
Content-Type:text/html; charset=UTF-8
感謝します。
解決
どの程度
<f:view contentType="text/html" />
他のヒント
使用右DOCTYPE でます。
<!DOCTYPE html>
より多くの何もありません。また、上部に<?xml?>
宣言を入れないでください。ここでは最小テンプレートはいます:
<!DOCTYPE html>
<html
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>Insert your title</title>
</h:head>
<h:body>
<h1>Hello World</h1>
</h:body>
</html>
これは、HTML5のDOCTYPEです。これは、XHTML 1.1マークアップと完全に互換性だと多くの利点を追加します。
は、以下のアプローチは、すべてのブラウザで動作します:
の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>
所属していません StackOverflow