【问题标题】:ui:include includes wrong file in JSF 2.2ui:include 在 JSF 2.2 中包含错误的文件
【发布时间】:2018-02-21 20:26:16
【问题描述】:

根据documentation of ui:include tag

使用这个标签——它与 JSP 的 jsp:include 非常相似——来封装 并在多个 XHTML 页面之间重用内容。有三件事 此标记可以包括:纯 XHTML 和具有以下任一标签的 XHTML 页面 组合标签或组件标签。

您通过 ui:include 的 src 属性为 JSF 提供一个文件名 包括。该文件名相对于呈现的 XHTML 文件 作为最后一个请求的结果。因此,例如,如果 JSF 加载 查看 login.xhtml,该文件包括 pageDecorations/header.xhtml, 和 pageDecorations/header.xhtml 包括 companyLogo.xhtml, 然后 companyLogo.xhtml 如果在 pageDecorations 中,将不会被找到 目录,因为 companyLogo.xhtml 必须在同一目录中 作为 login.xhtml。


我创建了一个简单的测试:
webapp/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>

webapp/pageDecorations/header.xhtml

<ui:include 
        src="logo.xhtml"

        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
/>

webapp/pageDecorations/logo.xhtml

<h:outputText 
      value="Logo in /pageDecorations" 
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
/>

webapp/logo.xhtml

<h:outputText value="Logo in /" 
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"

/>

当我在 WildFly 10.1 上使用 JSF 2.2 运行此测试(加载 login.xhtml 页面)时,我得到了 Logo in /pageDecorations,而根据文档,它应该是:Logo in /

怎么了 ?文档或 Mojarra 实现中是否存在错误?
还是我的理解有误?

【问题讨论】:

  • 是的 webapp/pageDecorations/logo.xhtml 应该被调用,因为你目前在 webapp/pageDecorations/ 里面,它会找到 webapp/pageDecorations/logo.xhtml

标签: jsf jsf-2.2


【解决方案1】:

首先,您在 webapp/ 内部并执行 webapp/login.xhtml 在里面你会得到src="pageDecorations/header.xhtml" 并执行你在 pageDecorations 和从 header.xhtml 中找到 src="logo.xhtml" 你会在同一个目录中(pageDecorations) 以便打印 “/pageDecorations 中的徽标” . 在这种情况下,文档看起来有问题。

【讨论】:

    猜你喜欢
    • 2013-12-05
    • 2011-11-29
    • 2014-12-11
    • 1970-01-01
    • 2013-01-01
    • 2013-09-12
    • 2012-08-17
    • 2012-06-09
    • 1970-01-01
    相关资源
    最近更新 更多