我决定尝试JSF 2.2(或者到目前为止我们已经拥有它),所以我抓住了Mojarra的最新快照构建并进行了设置。现在我有一个使用prettyphoto的模板。它在JSF 2.1上运行得很好,但是当我改为最新的mojarra版本时,漂亮的照片窗口没有显示。它让我疯了几个小时(我的电脑现在有2个玻璃鱼服务器,一个有最新的mojarra,一个有稳定的)。我意识到最新的mojarra构建并没有忽略以<ui:composition>
开头的模板客户端的DOCTYPE,因此我开始工作。
让我的例子更清楚..我有这样的事情:
JSF MASTER TEMPLATE 包含 DOCTYPE HTML 以及少量用户界面:插入
<?xml version='1.0' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
JSF常规页面使用DOCTYPE组合实现主模板:
<?xml version='1.0' encoding='UTF-8' ?>
<?xml version='1.0' ?>
<!DOCTYPE composition 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:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:jsf="http://java.sun.com/jsf"
template="./WEB-INF/template/MASTERTEMPLATE.xhtml>
.....<ui:define /> etc etc....
</ui:composition>
当这个后来的模板客户端被渲染到浏览器时,它会与doctype组合一起发送..我认为应该忽略ui之外的所有内容:组合.. 在稳定的Mojarra构建中,组合DOCTYPE是忽略的,它以html ...
的形式出现我最初怀疑这是一个错误,但也许是故意的?虽然他们应该告诉你,但我一整天都迷失了。
答案 0 :(得分:-1)
我有这个代码
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/template/template.xhtml">
如果您的模板文件夹位于web-inf中,请添加此文件夹
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/template/template.xhtml">