用户界面:包括包括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实施中是否存在错误?
还是我的理解错了?

+0

是webapp/pageDecorations/logo。应该调用xhtml,因为你目前在webapp/pageDecorations /内,它会找到webapp/pageDecorations/logo.xhtml –

首先,你在里面的webapp/和执行webapp/login.xhtml 里面,你得到src="pageDecorations/header.xhtml"和exectuing你在pageDecorations和header.xhtml你特林找到SRC =“logo.xhtml”这你会进入同一个目录(pageDecorations),所以它会打印 “Logo in/pageDecorations”。 在这种情况下文档看起来不对。