2012-06-05 90 views
1

ajax調用期間h:selectOneMenu的空/空值未設置爲後臺bean中的屬性,而如果I選擇任何具有非空/非空值的下拉列表項,它將在ajax調用期間設置爲支持bean中的屬性。 我注意到這種行爲,只有當我使用h:selectOneMenu & f:ajax在ui:repeat標籤中。而且,如果沒有ui:repeat標記,那麼在ajax調用期間,值(空和非空)都會正確設置爲支持bean中的屬性。在ajax調用期間,<ui:repeat>內的<h:selectOneMenu>空值未設置爲後臺bean

下面是上述情況的一小段代碼片段:

<h:panelGrid id="details"> 
<ui:repeat id="listId" value="#{new.List}" var="item" varStatus="itemStatus"> 
    <h:panelGrid id="idDoc"> 
    <ui:repeat id="docListId" value="#{item.docs}" var="docItem" varStatus="docStatus"> 
     <h:selectOneMenu id="type" value="#{docItem.docType}" label="Type" style="" styleClass='' > 

       <f:selectItems value="#{new.docSelections}"/> 

       <f:ajax onevent="refreshDoc" event="valueChange" render="@this :form:listId:docListId:idDoc" execute=":form:listId:details" listener="#{new.save}"/> 
      </h:selectOneMenu> 
    </ui:repeat> 
    </h:panelGrid> 
</ui:repeat> 
</h:panelGrid> 

是否有在我使用的UI過程中的任何問題:重複,H:selectOneMenu用於和f:AJAX?

+0

它使用render =「@form」execute =「@form」? – Daniel

+0

Tx爲答覆。 Nope.I已經嘗試過,但仍然沒有將空值設置爲backing bean。 – Nila

+0

b.t.w刪除'event =「valueChange」'(並再次檢查...) – Daniel

回答

2

你似乎在使用莫哈拉。確實存在幾個與(嵌套)<ui:repeat>和組件狀態保存有關的問題。嘗試將Mojarra升級至the latest version

另一種方法是將<h:panelGrid><ui:repeat>替換爲<h:dataTable>,因爲它實際上會生成相同的標記。 <h:dataTable>不受<ui:repeat>問題的影響。

<h:dataTable id="details" value="#{new.List}" var="item" binding="#{itemStatus}"> 
    <h:column> 
    <h:dataTable id="idDoc" value="#{item.docs}" var="docItem" binding="#{docStatus}"> 
     <h:column> 
     <h:selectOneMenu id="type" value="#{docItem.docType}" label="Type" style="" styleClass='' > 
      <f:selectItems value="#{new.docSelections}"/> 
      <f:ajax onevent="refreshDoc" event="valueChange" render="@this :form:listId:docListId:idDoc" execute=":form:listId:details" listener="#{new.save}"/> 
     </h:selectOneMenu> 
     </h:column> 
    </h:dataTable> 
    </h:column> 
</h:dataTable> 
+0

謝謝@BalusC ....更改ui:重複到datatable解決了問題... – Nila

+0

感謝@BalusC。我目前正在大部分地方實施我的應用程序中的更改......如果我沒有發現與此有關的其他問題,我會接受它。 – Nila

相關問題