2013-03-08 37 views
0

我試圖訪問Javascript中的下拉列表中的列表。所以我有一個對象System(這是存儲在下拉列表中的對象),它有一個列表Collections。我是Javascript新手,不確定訪問列表的正確語法。在Javascript中的下拉內訪問列表

因此,這是一個包含下拉表單:

<form:form id="systemForm" method="post" action="/application/SystemSave" commandName="systemForm"> 
    <form:select path="uSelectedSystemId" id="uSystemId"> 
     <c:forEach var="system" items="${systemsList}"> 
      <form:option value="${system.id}" label="${system.name}" /> 
     </c:forEach> 
    </form:select> 
</form:form> 

,這是System對象(從Java)的設置:

public class System { 
    private Long id; 
    private String name; 
    private List<Collection> collections; 
} 

,這是SystemForm的設置用於存儲的值:

public class SystemForm { 
private String fUpdateSystemName; 
private String uSelectedSystemId; 
    private List<Collection> uCollections; 
} 

我猜我是ne編輯某些存儲值的循環內的隱藏字段,但我不知道正確的語法。我可以重新登錄數據庫並根據systemID得到所有Collections,但我不認爲這是正確的做事方式,因爲信息應該已經可用。

任何幫助非常感謝!

+0

輸出將取決於你想用'system.collections'下一步做什麼。你想在另一個下拉菜單中顯示它們嗎?或者只是列表/純文本?或者根本不顯示它們並在內部JavaScript對象中使用它們? – jfrej 2013-03-08 14:05:31

+0

不,我不想顯示集合,只用它來重新填充原始對象,以便它可以通過Hibernate保存。我認爲使用系統的ID從數據庫中獲取系統對象可能是一個更好的主意,該數據庫將已經填充了集合,然後更新任何已修改的值並將其發送回數據庫以保存。這種方式休眠不會開始呻吟,因爲我實際上是通過手動設置它的ID來創建一個假對象。 – maloney 2013-03-08 14:14:53

回答

0

試試這個

<form:form id="systemForm" method="post" action="/application/SystemSave" commandName="systemForm"> 
    <select id="uSystemId"> 
     <c:forEach var="system" items="${systemsList}"> 
      <option value="${system.id}" label="${system.name}" /> 
     </c:forEach> 
    </select> 
</form:form> 

我不知道到底這將滿足您的要求或沒有。

+0

所以我只是刪除路徑?我如何從'SystemForm'訪問它? – maloney 2013-03-08 13:40:44

+0

什麼是SystemForm – PSR 2013-03-08 13:41:28

+0

這就是我使用訪問從控制器(Java端)選擇的值 - 我已經把問題中的設置的一個例子。 – maloney 2013-03-08 13:42:23