Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 每个include都应该引用其他实例_Jsf_Jsf 2_Reference_Uiinclude - Fatal编程技术网

Jsf 每个include都应该引用其他实例

Jsf 每个include都应该引用其他实例,jsf,jsf-2,reference,uiinclude,Jsf,Jsf 2,Reference,Uiinclude,我将XHTML页面的一部分包含到我的Web应用程序中。此部分可以包含多次。这就是问题所在!因为每个include都引用同一个java对象。这意味着每个元素都有相同的值。但是我想为每一个包含一个新的Java对象。那么,解决这个问题的最佳方法是什么呢 主页包括: <ui:composition template="./templates/template.xhtml"> <ui:define name="mainContent"> <ui:include sr

我将XHTML页面的一部分包含到我的Web应用程序中。此部分可以包含多次。这就是问题所在!因为每个include都引用同一个java对象。这意味着每个元素都有相同的值。但是我想为每一个包含一个新的Java对象。那么,解决这个问题的最佳方法是什么呢

主页包括:

<ui:composition template="./templates/template.xhtml">
<ui:define name="mainContent">

    <ui:include src="include/includeAbleEditor.xhtml">
        <ui:param name="includeParam" value="MyClass" />
    </ui:include>

    <ui:include src="include/includeAbleEditor.xhtml">
        <ui:param name="includeParam" value="YourClass" />
    </ui:include>

</ui:define>

includAbleEditor.xhtml

<h:commandButton value="#{editorVisibility.evb.value}"
                 action="#{editorVisibility.evb.toggle}" />

<h:inputTextarea rendered="#{editorVisibility.evb.enabled}" />

这是我的问题的一个例子。每个包含的区域都有一个切换按钮。通过单击按钮,文本区域应显示或隐藏。但是由于布尔值
的引用相同,所有
将始终具有相同的渲染值

你有什么建议吗


非常感谢

您必须持有与拥有编辑器一样多的editorVisibility.evb实例。例如,您可以在
编辑器Visibility
bean中创建
列表evbList
,并将一个元素作为
传递给

主页

<ui:include src="include/includeAbleEditor.xhtml">
    <ui:param name="includeParam" value="MyClass" />
    <ui:param name="evb" value="#{editorVisibility.evbList[0]}" />
</ui:include>

includAbleEditor.xhtml

<h:commandButton value="#{evb.value}"
                 action="#{evb.toggle}" />
<h:inputTextarea rendered="#{evb.enabled}" />

您还可以创建复合构件

另请参见:


如果使用hashmap,可以通过键而不是索引检索它