每个包含都应该引用其他实例
Every include should refer to other instance
我将 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}" />
这个 <h:inputTextarea>
是我的问题的一个例子。每个包含的 inputTextarea 都有一个切换按钮。通过单击按钮,应显示或隐藏文本区域。但是由于布尔值 value
的相同引用,所有 <h:inputTextarea>
将始终具有相同的渲染值。
你有什么建议吗?
非常感谢!
您必须拥有与编辑者一样多的 editorVisibility.evb 实例。例如,您可以在 EditorVisibility
bean 中创建一个 List<TypeOfEvb> evbList
,然后仅将一个元素作为 <ui:param>
:
传递给 <ui:include>
主页
<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}" />
您还可以创建复合组件。
另请参阅:
我将 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}" />
这个 <h:inputTextarea>
是我的问题的一个例子。每个包含的 inputTextarea 都有一个切换按钮。通过单击按钮,应显示或隐藏文本区域。但是由于布尔值 value
的相同引用,所有 <h:inputTextarea>
将始终具有相同的渲染值。
你有什么建议吗?
非常感谢!
您必须拥有与编辑者一样多的 editorVisibility.evb 实例。例如,您可以在 EditorVisibility
bean 中创建一个 List<TypeOfEvb> evbList
,然后仅将一个元素作为 <ui:param>
:
<ui:include>
主页
<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}" />
您还可以创建复合组件。
另请参阅: