2013-07-09 28 views
-1

我想在JSP頁面上顯示多個下拉列表。我正在使用Struts並在我的JSP頁面中獲得以下數據對象。不使用AJAX的JSP中的動態下拉列表

<% 
Map<String, CustomObject> data = (Map<String, CustomObject>)renderRequest.getAttribute("data");%> 

的第一列表(稱爲A)顯示從數據的所有鍵和被定義爲以下。

<select id="A" name="A" onchange="?"> 
    <option value="">Please Select</option> 
    <c:forEach var="entry" items="${data}"> 
     <option value="${entry.key}">${entry.key}</option> 
    </c:forEach> 
</select> 

我不知道我應該怎麼定義其餘的名單,但我要的是,基於在選擇,剩下的三個下拉菜單應該是動態使用對應於CustomObject填充的(以A值是關鍵數據)。該CustomObject類定義爲以下

class CustomObject{ 
    List<String> b; 
    List<String> c; 
    List<String> d; 
} 

我不想使用Ajax,因爲所有需要的數據已經存在於地圖上。任何想法我怎麼能實現這一點。

感謝

+0

你想一次或多次填充它嗎? –

+0

每次在DropDown A中進行新選擇時都應更新下拉列表。 – WuR

回答

0

,我發現是聲明瞭三個全局JavaScript變量,並將其初始化爲使用地圖中的每個孩子下拉值的解決方案要求如通過

var dataB = { <c:forEach items="${data}" var="item" varStatus="loop"> 
    "${item.key}" : [ <c:forEach items="${item.value.list}" var="value" 
       varStatus="subLoop"> "${value}" ${not subLoop.last ? ',':'' 
       </c:forEach> ] 
    ${not loop.last ? ',' : ''} 
    </c:forEach> }; 

然後有一種方法調用下拉A的ChangeChange並填充DropDown中與選擇對應的值的下拉列表。

我不確定該解決方案有多優雅,但它的工作原理。