簡體   English   中英

如何在<h:dataTable>中使用<ui:include>?

[英]How to use <ui:include> inside a <h:dataTable>?

我想動態地多次<ui:include>一個頁面。

碼:

<h:dataTable ..>
    <h:column>
        <ui:include  src="#{create_page}">
    <h:column>
<h:dataTable>

現在,當我提交它時,它只持續最后一個。 它只記住最后一個包含頁面的值。 我想在每個create_page中使用唯一的實體對象。 我怎樣才能做到這一點?

<ui:include>是在視圖構建期間執行的標記處理程序,而<h:dataTable>是在視圖渲染時執行的UI組件。 這意味着<ui:include> <h:dataTable> 之前執行一次,因此在迭代期間不執行。 您實際上最終會在每一行中使用完全相同的包含源。 提交表單時,行將逐個處理,直到最后一行,這就是您有效地結束最后一行的值的原因。

基本上有兩種方法可以解決這個問題:

  1. 使用<c:forEach>代替<h:dataTable> ,這也在視圖構建期間運行。

  2. 使用標記文件或復合組件而不是<ui:include> ,這也會在視圖渲染時運行。

無論哪種方式,您還需要確保輸入值綁定到數據表的var屬性后面的對象,而不是綁定到同一個支持bean屬性。

也可以看看:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM