用户界面:包括包括JSF 2.2
错误的文件Accorrding到documentation of ui:include tag用户界面:包括包括JSF 2.2
使用该标签,这是非常类似JSP的JSP:包括-封装 和重复使用多个XHTML页面中的内容。有三件事 这个标签可以包括:纯XHTML和XHTML页面,其中包含 组合标签或组件标签。
您通过ui提供了一个文件名:include的JSF属性为 include。该文件名与最后一次请求导致的 呈现的XHTML文件有关。因此,例如,如果JSF加载了 视图login.xhtml,并且该文件包含pageDecorations/header.xhtml, 和pageDecorations/header.xhtml包含companyLogo.xhtml,,那么 companyLogo.xhtml将不会被发现,如果它在pageDecorations 目录,因为companyLogo.xhtml必须与login.xhtml位于相同的目录 。
我创建了一个简单的测试:
web应用/ login.xhtml
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:body>
<ui:include src="pageDecorations/header.xhtml" />
</h:body>
</html>
web应用/ pageDecorations/header.xhtml
<ui:include
src="logo.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
/>
web应用/ pageDecorations/logo.xhtml
<h:outputText
value="Logo in /pageDecorations"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
/>
web应用/ logo.xhtml
<h:outputText value="Logo in /"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
/>
当我跑这个测试(加载登录.xhtml p年龄)在WildFly 10.1上使用JSF 2.2,我得到了Logo in /pageDecorations
,而根据文档,它应该是:Logo in /
什么是错?文档或Mojarra实施中是否存在错误?
还是我的理解错了?
首先,你在里面的webapp/和执行webapp/login.xhtml
里面,你得到src="pageDecorations/header.xhtml"
和exectuing你在pageDecorations和header.xhtml你特林找到SRC =“logo.xhtml”这你会进入同一个目录(pageDecorations),所以它会打印 “Logo in/pageDecorations”。 在这种情况下文档看起来不对。
是webapp/pageDecorations/logo。应该调用xhtml,因为你目前在webapp/pageDecorations /内,它会找到webapp/pageDecorations/logo.xhtml –