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

cze*_*rny 4 xhtml content-type http-headers jsf-2 wildfly-8

如何让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>
Run Code Online (Sandbox Code Playgroud)

我的示例文件 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>
Run Code Online (Sandbox Code Playgroud)

环境:
JSF 2.2,WildFly 8.2

Kuk*_*tje 5

您可以<f:view>按如下方式设置:

<f:view contentType="application/xhtml+xml">
Run Code Online (Sandbox Code Playgroud)

但是,这是HTML的错误值.JSF/XHTML生成的HTML输出应该确实具有text/html内容类型.可以在何时使用f:view和f:subview的答案中找到解释,特别是在该答案的"另请参见"链接中.