質問

私は強く、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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top