【问题标题】:JSF rendered and fragmentsJSF 渲染和片段
【发布时间】:2014-02-27 14:11:04
【问题描述】:

我遇到了一个 JSF 问题,我有一个在所有页面上呈现的片段,并显示表的最新条目(约 10 个项目)。我想在列出所有条目的页面上重复使用它。

我设置了一个渲染规则来防止元素的所有页面版本专门出现在这个页面上,但仍然不行,我得到一个“在视图中发现重复的 id”错误。问题似乎在于 JSF 处理器在验证哪些 ID 将真正呈现之前验证 ID。

仅供参考,我使用请求 URI 的结尾来确定呈现的是 True 还是 False。

啊,我试过用 c:if,但也没用。

编辑:

请求示例代码...

我有这个 xhtml 片段(“tableInclude.xhtml”):

<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:f="http://java.sun.com/jsf/core"
    xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
    xmlns:p="http://primefaces.org/ui"
    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
    <ui:fragment>
        <p:dataTable var="item" value="#{bean.items}"
                     emptyMessage="#{msg['table.empty']}"
                     widgetVar="table" id="listItems" styleClass="tableItems">
            <p:column styleClass="span1" style="text-align: center;">
                <f:facet name="header">
                    <i class='fa-icon-picture'/>
                </f:facet>
                <p:commandLink action="#{bean.itemSelected(item)}" value="#{item.name}"/>
            </p:column>
        </p:dataTable>
    </ui:fragment>
</ui:composition>

然后我在每个页面上运行:

<ui:include src="./tableInclude.xhtml">

我尝试过这样做:

<ui:fragment rendered="#{request.requestURI != '/context/don't_render_here.xhtml'}">
    <ui:include src="./tableInclude.xhtml">
</ui:fragment>

但即使如此,当我访问“don't_render_here.xhtml”页面时,我仍然会收到重复的 id 错误。

【问题讨论】:

  • 我无法想象您的 facelet 文件。可以举个例子吗?
  • @mabi 按要求发布。 =]
  • 必填链接:stackoverflow.com/questions/6822000/… - 我看到的快速选项:将id 放在桌面上,或者以不同的形式添加其他内容。明天好好看看。
  • 不是最好的解决方案,而是一个快速而肮脏的解决方案:将 ui:fragment 替换为 f:subView
  • @MicheleMariotti 请将您的回复作为答案发布,如果 Mabi 不会发布更好的答案,我会接受您的。

标签: jsf jsf-2 jstl rendered-attribute


【解决方案1】:

不是最好的解决方案,而是一个快速而肮脏的解决方案:将 ui:fragment 替换为 f:subView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2011-12-12
    • 2011-06-17
    相关资源
    最近更新 更多