如何使用jQuery和jsp生成动态下拉列表?

如何使用jQuery和jsp生成动态下拉列表?,jquery,jsp,Jquery,Jsp,我有一个类型a的列表,其中每个元素包含另一个类型B的列表。我想创建一个表单,当用户从包含a值的下拉列表中选择一个值时,另一个下拉列表用于根据所选项的类型B列表填充值。我对jQuery不太熟悉,但我知道使用jQuery而不是纯jsp来实现这一点很方便。请给我一个完成这项工作需要遵循的步骤的大致轮廓。我回答了一个关于。。。我不知道jsp,但是这个jQuery版本应该会给你一个想法。jsp只是一种服务器端视图技术。它不与jQuery竞争。您完全可以继续为此使用JSP。但我知道您希望使用一种轴向技术而不

我有一个类型a的列表,其中每个元素包含另一个类型B的列表。我想创建一个表单,当用户从包含a值的下拉列表中选择一个值时,另一个下拉列表用于根据所选项的类型B列表填充值。我对jQuery不太熟悉,但我知道使用jQuery而不是纯jsp来实现这一点很方便。请给我一个完成这项工作需要遵循的步骤的大致轮廓。

我回答了一个关于。。。我不知道jsp,但是这个jQuery版本应该会给你一个想法。

jsp只是一种服务器端视图技术。它不与jQuery竞争。您完全可以继续为此使用JSP。但我知道您希望使用一种轴向技术而不是同步请求触发一个异步请求。这在JSP中也没有问题

首先,我们需要在JSP中有两个下拉列表:

<select id="dropdown1">
    <c:forEach items="#{bean.items}" var="item">
        <option value="#{item.value}">#{item.label}</option>
    </c:forEach>
</select>
<select id="dropdown2">
    <option>Please select dropdown1</option>
</select>
/dropdown2options
url模式
后面的servlet中,只需将选项映射返回为。你可以用这个

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String selectedValue = request.getParameter("value");
    Map<String, String> options = optionDAO.find(selectedValue);
    String json = new Gson().toJson(options);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(json);
}
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
String selectedValue=request.getParameter(“值”);
映射选项=optionDAO.find(selectedValue);
字符串json=new Gson().toJson(选项);
setContentType(“应用程序/json”);
响应。setCharacterEncoding(“UTF-8”);
response.getWriter().write(json);
}
基本上就这些

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String selectedValue = request.getParameter("value");
    Map<String, String> options = optionDAO.find(selectedValue);
    String json = new Gson().toJson(options);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(json);
}