我的JSP中有两个下拉列表。一个是topcategories,另一个是subCategories。当我的JSP页面最初加载时,它将在第一个下拉框中仅包含topcategories列表,第二个下拉列表将为空。当我从第一个下拉列表中选择topcategory时,应在第二个下拉列表中填充相应的子类别。在我初始加载jsp本身的过程中,我将获得同时包含topcategory和subcategory列表的数据库。因此,当选择topcategory时,我应该选择topcategory的值,并且我必须将它与databean中存在的topcategory列表进行比较,并且需要在第二个下拉列表中填充相应的子类别。怎么做这个PLZ帮助我。提前致谢。我已经分享了我的代码供参考。
<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 :(得分:0)
一种方法是创建一个表示“catalog”bean的javascript对象。然后写一个绑定到topcategories下拉列表的onchange处理程序,它使用javascript中的“catalog”对象来获取子目录的javascript数组。
将其分解为步骤:
第1步: 创建一个表示“catalog”bean的javascript对象: 一种简单的方法是覆盖Catalog bean的toString()方法并返回表示bean的JSON对象。或使用Jackson api将Catalog对象转换为JSON String。完成后,将json保存在javascript变量中。例如在你的jsp中写下这个:
<script type="text/javascript"> var catalogJson = ${catalog};</script>
第2步: 在javascript中编写loadModel函数,该函数使用“catalogJson”变量来获取子目录并在其他下拉列表中填充它们。
我已经摒弃了一些细节,但大多数细节都是直截了当的。