2012-12-06 122 views
1

我試圖使用JSF根據從視圖到控制器的用戶輸入檢索多個下拉列表。從JSF 2.0的視圖中獲取多個下拉列表值

但似乎我無法找到正確的方法。

由於下拉列表是動態生成的,我無法硬編碼下拉列表的ID /名稱。

這裏是我的視圖代碼:

    <ui:repeat var="file" value="#{uploadBean.filesInZip}" varStatus="status"> 
         <tr> 
          <td><h:outputText value="#{file.name}" /></td> 
          <td> 
           <h:selectOneMenu id="studentSelections" value="#{uploadBean.studentSelections}" name="studentSelections"> 
            <f:selectItems value="#{uploadBean.students}" var="student" 
             itemLabel="#{student.firstName}, #{student.lastName} (#{student.userId})" 
             itemValue="#{student.id}"/> 
           </h:selectOneMenu> 
          </td> 
         </tr> 
        </ui:repeat> 

我以爲我可以宣佈一個名爲studentSelections在控制器列表中,使我能得到下拉列表中的所有用戶輸入,但似乎我失敗了。

所以任何人都可以幫忙嗎?

回答

2

我以爲我可以宣佈一個列表,控制器命名studentSelections這樣我就可以得到下拉列表中的所有用戶輸入,但似乎我已經失敗了。

這是正確的模型方法。在視圖方面,您需要按索引引用列表值,如<ui:repeat varStatus>所示。假設#{student.id}Long,你已經一個

private List<Long> studentSelections; 

那麼這應該在你的具體情況做

<h:selectOneMenu ... value="#{uploadBean.studentSelections[status.index]}"> 

無關的具體問題,the <h:selectOneMenu> doesn't support the name attribute at all。擺脫它。 JSF自動生成一個。

+0

正是我的問題是什麼!!! 非常感謝! – Hei

+0

不客氣。 – BalusC