如何在 JSF 2.2 中更改 Content-Type header
How to change Content-Type header in JSF 2.2
如何让 JSF 发送 http header
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
您可以在<f:view>
中设置如下:
<f:view contentType="application/xhtml+xml">
但是,HTML 的值是错误的。 JSF/XHTML 生成 HTML 输出,实际上应该具有 text/html
内容类型。可以在 When to use f:view and f:subview 的答案中找到解释,特别是在该答案中的 "See also" 链接中。
如何让 JSF 发送 http header
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
您可以在<f:view>
中设置如下:
<f:view contentType="application/xhtml+xml">
但是,HTML 的值是错误的。 JSF/XHTML 生成 HTML 输出,实际上应该具有 text/html
内容类型。可以在 When to use f:view and f:subview 的答案中找到解释,特别是在该答案中的 "See also" 链接中。