如何在JSF 2.2中更改Content-Type头部

4
我该如何让JSF发送HTTP头部信息 Content-Type: application/xhtml+xml;charset=UTF-8 而不是当前的 Content-Type: text/html;charset=UTF-8?在web.xml中添加以下代码片段没有效果。
<mime-mapping>
    <extension>xhtml</extension>
    <mime-type>application/xhtml+xml</mime-type>
</mime-mapping>

我的样例文件webapp/sample.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
<f:view>
    <h:outputLabel value="Hello, world"/>
</f:view>
</html>

环境:
JSF 2.2,WildFly 8.2


因为application/xhtml+xml是XHTML5的正确MIME类型 http://www.w3.org/TR/html5/introduction.html#html-vs-xhtml - czerny
是的,我知道,但你有没有阅读我在链接中发布的有关IE的答案? - Kukeltje
是的,我做到了,谢谢你的帮助。知道如何更改这个设置仍然让人感到很棒,而不只是因为有合理的默认值而高兴。 - czerny
1个回答

5
你可以在以下的<f:view>中进行设置:
<f:view contentType="application/xhtml+xml">

然而,这是HTML的错误值。JSF / XHTML生成HTML输出,其实应该具有“text / html”内容类型。解释可以在When to use f:view and f:subview的答案中找到,特别是该答案中的“See also”链接。

1
而令人印象深刻的是,我并不知道这一点,但 Google 是我的朋友。让它成为你的朋友。 - Kukeltje

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接