2013-02-02 115 views
0

我在JSP中有兩個下拉列表。一個用於topcategories,另一個用於subCategories。當我的JSP頁面最初加載時,它將僅包含第一個下拉框中的topcategories列表,第二個下拉列表將爲空。當我從第一個下拉列表中選擇topcategory時,其相應的子類別應填充到第二個下拉列表中。在我初次加載jsp的過程中,我將獲得包含topcategory和子類別列表的databean。所以當選擇topcategory時,我應該選擇topcategory的值,並且必須將它與databean中存在的topcategory列表進行比較,並且需要在第二個下拉列表中填充相應的子類別。如何做到這一點幫助我。提前致謝。我已經分享了我的代碼以供參考。jsp中的依賴下拉列表

<div class="selectbox01"> 
       <select name="make" id="make" onchange="loadModel()"> 

        <c:forEach var="topCategory" items="${catalog.topCategories}" varStatus="status"> 
        <option selected="selected"></option> 
        <option value="${topCategory.categoryId}"><c:out value="${topCategory.description.name}"/></option> 
        </c:forEach> 
       </select> 
      </div> 
      <c:set var="make" value="${WCParam.make}"/> 
      <div class="selectbox01"> 
       <select name="model" id="model"> 
       <option selected="selected"></option> 
       <c:forEach var="topCategory" items="${catalog.topCategories}" varStatus="status"> 
       <c:if test="${topCategory.categoryId == make}"> 
       <c:forEach var="subTopCategory" items="${topCategory.subCategories}" varStatus="status2"> 
        <option value="${subTopCategory.categoryId}"> 
<c:out value="${subTopCategory.description.name}"/></option> 
        </c:forEach> 
        </c:if> 
        </c:forEach> 

       </select> 
      </div> 

回答

0

一種方式做到這一點是讓JavaScript對象表示「目錄」 bean.Then寫結合到使用「目錄」中的JavaScript對象來獲取subcatagories的JavaScript數組的topcategories下拉列表中選擇onChange處理。

打破這個下降到步驟:

步驟1: 請javascript對象表示「目錄」豆: 一種簡單的方法來做到這一點是重寫的toString()目錄豆的方法,並返回一個代表bean的JSON對象。或使用Jackson api將目錄對象轉換爲JSON字符串。完成之後,將json保存在一個JavaScript變量中。例如在JSP中這樣寫:

<script type="text/javascript"> var catalogJson = ${catalog};</script> 

第2步:在JavaScript 寫loadModel功能,它使用「catalogJson」變量獲得subcatagories和其他下拉填充它們。

我已經eleminated一些細節,但大部分是簡單的,我猜。