JSF Mojarra中的Doctype

时间:2013-04-02 17:08:47

标签: jsf-2 doctype mojarra

我应该在JSF页面中使用什么Doctype?前几天我正试图从Mojarra 2.1.13迁移到2.1.18,似乎解释了doc类型的方式发生了变化。在根模板中,我有以下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中doctypes的正确用法是什么。或者这是Mojarra的问题?我没有找到任何关于此的参考。

2 个答案:

答案 0 :(得分:3)

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

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

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

只需在模板中指定doctype即可

答案 1 :(得分:0)

我还将Jboss 7.1迁移到JBoss EAP 6.1

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

<!DOCTYPE html>

即G:

<!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吗?