0

我的 JSP 中有两个下拉列表。一个用于顶级类别,另一个用于子类别。当我的 JSP 页面最初加载时,它将仅包含第一个下拉框中的 topcategories 列表,而第二个下拉列表将为空。当我从第一个下拉列表中选择 topcategory 时,其相应的子类别应填充在第二个下拉列表中。在我初始加载 jsp 本身的过程中,我将获得包含顶级类别和子类别列表的数据bean。So when the topcategory is selected i should get the value of topcategory selected and I have to compare it with the topcategory list present in databean and need to populate the corresponding subcategories in the second drop down. 如何做到这一点请帮助我。提前致谢。我已经分享了我的代码以供参考。

<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>
4

1 回答 1

0

一种方法是制作一个表示“目录”bean 的 javascript 对象。然后编写一个绑定到 topcategories 下拉列表的 onchange 处理程序,该处理程序使用 javascript 中的“目录”对象来获取子目录的 javascript 数组。

将其分解为步骤:

第 1 步: 创建一个表示“目录”bean 的 javascript 对象:一个简单的方法是覆盖目录 bean 的 toString() 方法并返回一个表示该 bean 的 JSON 对象。或使用Jackson api 将目录对象转换为 JSON 字符串。完成后,将 json 保存在 javascript 变量中。例如在你的jsp中写下这个:

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

第 2 步: 在 javascript 中编写 loadModel 函数,该函数使用“catalogJson”变量来获取子目录并将它们填充到另一个下拉列表中。

我已经消除了一些细节,但我猜大部分都是直截了当的。

于 2013-02-02T10:35:34.037 回答