4

我应该在 JSF 页面中使用什么 Doctype?前几天我试图从 Mojarra 2.1.13 迁移到 2.1.18,似乎解释文档类型的方式发生了变化。在根模板中,我有以下 DOC TYPE

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

我也必须包括这个吗?

<?xml version="1.0"?>

在复合材料(使用此模板)中,我曾经有以下 doctype

 <!DOCTYPE composite PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

但似乎 Mojarra 2.1.18 并不真正支持这一点。此外,我在任何 JSF 2.0 参考资料中都没有找到它,这是我们曾经在 JSF 1.2 中使用的。如果我在复合页面中有这个 doctype,它将呈现复合 doctype 而不是模板中的 html。结果,css 样式被弄乱了。

那么 JSF 2.0 中文档类型的正确用法是什么?或者这是 Mojarra 的问题?我没有找到任何关于此的参考。

4

2 回答 2

3

我为此创建了一个 JIRA 问题:http: //java.net/jira/browse/JAVASERVERFACES-2820

它已被关闭,因为这是预期的行为。

“复合页面是您实际使用模板的地方。因此,它是您指定文档类型的最外层文件。因此,它定义了将呈现的文档类型。”

只需在模板中指定文档类型即可

于 2013-04-19T14:51:00.913 回答
0

我还将 Jboss 7.1 迁移到了 JBoss EAP 6.1

我发现不是很好的解决方法 - 在每个页面上插入(不是模板):

<!DOCTYPE html>

例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html" template="template.xhtml"> 

还有其他方法 - 从主模板中读取 doctype 吗?

于 2013-04-18T08:39:58.093 回答