Java */ 私有静态最终长serialVersionUID=-246138720625839595143L; 专用静态最终记录器=记录器 .getLogger(CategoryServlet.class); 私有连接=null; public void doGet(HttpServletRequest请求、HttpServletResponse响应) 抛出ServletException、IOException{ connection=DBConnection.getConnection(); RequestDispatcher=请求 .getRequestDispatcher(“jsp/pages/create.jsp”); 调度器。包括(请求、响应); String id=request.getParameter(“id”); 字符串category=request.getParameter(“category”); 字符串parentCategory=request.getParameter(“parentCategory”); if(StringUtils.paramSet(id)){ request.setAttribute(“CATEGORY”,CategoryService.getCategoryById( Long.valueOf(id,connection)); }else if(StringUtils.paramSet(parentCategory)){ request.setAttribute( “类别”, CategoryService.getParentCategory( Integer.valueOf(parentCategory,connection)); }else if(StringUtils.paramSet(类别)){ 字符串类别=request.getParameter(“类别”); if(StringUtils.paramSet(类别)){ request.setAttribute( “类别”, CategoryService.ListalCategory( Integer.valueOf(parentCategory,connection)); } dispatcher=request.getRequestDispatcher(“jsp/pages/create.jsp”); }否则{ request.setAttribute( “类别”, CategoryService.ListalCategory( Integer.valueOf(parentCategory,connection)); } 调度器。包括(请求、响应); DBConnection.closeConnection(连接); } public void doPost(HttpServletRequest请求、HttpServletResponse响应) 抛出ServletException、IOException{ int parentCategory=Integer.parseInt(request.getParameter(“parentCategory”); LOGGER.info(“父类别id:+parentCategory”); connection=DBConnection.getConnection(); Map resp=新的HashMap(); List categorySelectorList=CategoryService .listAllCategory(父类别, 连接); 相应put(“类别选择器列表”,类别选择器列表); setContentType(“应用程序/json”); 试一试{ Gson Gson=新的Gson(); 字符串s=gson.toJson(resp); response.getWriter().write; LOGGER.info(“测试mmmm:+s”); }捕获(例外e){ response.getWriter() .write(“{\”error\”:\”发生错误,请重试。如果错误仍然存在,请刷新浏览器\“}”); } DBConnection.closeConnection(连接); }

Java */ 私有静态最终长serialVersionUID=-246138720625839595143L; 专用静态最终记录器=记录器 .getLogger(CategoryServlet.class); 私有连接=null; public void doGet(HttpServletRequest请求、HttpServletResponse响应) 抛出ServletException、IOException{ connection=DBConnection.getConnection(); RequestDispatcher=请求 .getRequestDispatcher(“jsp/pages/create.jsp”); 调度器。包括(请求、响应); String id=request.getParameter(“id”); 字符串category=request.getParameter(“category”); 字符串parentCategory=request.getParameter(“parentCategory”); if(StringUtils.paramSet(id)){ request.setAttribute(“CATEGORY”,CategoryService.getCategoryById( Long.valueOf(id,connection)); }else if(StringUtils.paramSet(parentCategory)){ request.setAttribute( “类别”, CategoryService.getParentCategory( Integer.valueOf(parentCategory,connection)); }else if(StringUtils.paramSet(类别)){ 字符串类别=request.getParameter(“类别”); if(StringUtils.paramSet(类别)){ request.setAttribute( “类别”, CategoryService.ListalCategory( Integer.valueOf(parentCategory,connection)); } dispatcher=request.getRequestDispatcher(“jsp/pages/create.jsp”); }否则{ request.setAttribute( “类别”, CategoryService.ListalCategory( Integer.valueOf(parentCategory,connection)); } 调度器。包括(请求、响应); DBConnection.closeConnection(连接); } public void doPost(HttpServletRequest请求、HttpServletResponse响应) 抛出ServletException、IOException{ int parentCategory=Integer.parseInt(request.getParameter(“parentCategory”); LOGGER.info(“父类别id:+parentCategory”); connection=DBConnection.getConnection(); Map resp=新的HashMap(); List categorySelectorList=CategoryService .listAllCategory(父类别, 连接); 相应put(“类别选择器列表”,类别选择器列表); setContentType(“应用程序/json”); 试一试{ Gson Gson=新的Gson(); 字符串s=gson.toJson(resp); response.getWriter().write; LOGGER.info(“测试mmmm:+s”); }捕获(例外e){ response.getWriter() .write(“{\”error\”:\”发生错误,请重试。如果错误仍然存在,请刷新浏览器\“}”); } DBConnection.closeConnection(连接); },java,jquery,ajax,jsp,servlets,Java,Jquery,Ajax,Jsp,Servlets,} 在jsp中,我修改如下: <div class="control-group"> <label class="control-label" for="selectError2">Select Category</label> <div class="controls"&

}

在jsp中,我修改如下:

    <div class="control-group">
                            <label class="control-label" for="selectError2">Select
                                Category</label>
                            <div class="controls">
                                <select id="parentCategorySelector" name="parentCategorySelector"
                                    data-rel="chosen">
                                    <option value="">--Select Category--</option>
                                    <c:forEach items="${PARENTCATEGORY}" var="parentcategory">
                                        <option value="${parentcategory.id}">
                                            <c:out value="${parentcategory.name}" />
                                        </option>
                                    </c:forEach>

                                </select>
                            </div>
                            </div>

                        <div class="control-group">
                            <label class="control-label" for="selectError2">Select
                                type</label>
                            <div class="controls">
                                <select id="categorySelector" name="categorySelector"
                                    data-rel="chosen">                                      

                                </select>
                            </div>
                        </div>  

挑选
类别
--选择类别--
挑选
类型
上面的工作正常


谢谢大家。

尝试分离并定位问题。服务器是否返回某些内容?这是服务器端的问题还是客户端的问题?嗨,StanislavL,在客户端没有显示任何内容,即数据从下面的行中为空。。var categorySelectorList=data.categorySelectorList;谢谢Jai,让我如上所述进行更改,看看是否有效。@pmaingi这只是一个建议,您仍然需要在服务器端查找需要处理的参数。解决方案:在ajax部分,我对其进行了修改,下面的工作正常
  public class CategoryServlet extends HttpServlet {

/**
 * serialization
 */
private static final long serialVersionUID = -2461387206258395143L;

private static final Logger LOGGER = Logger
        .getLogger(CategoryServlet.class);

private Connection connection = null;
int cat = 0;

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    connection = DBConnection.getConnection();

    RequestDispatcher dispatcher = request
            .getRequestDispatcher("pages/all.jsp");
    dispatcher.include(request, response);

    String id = request.getParameter("id");
    String category = request.getParameter("category");
    String parentCategory = request.getParameter("parentCategory");

    if (StringUtils.paramSet(id)) {

        request.setAttribute("CATEGORY", CategoryService.getCategoryById(
                Long.valueOf(id), connection));

    } else if (StringUtils.paramSet(parentCategory)) {

        request.setAttribute(
                "CATEGORY",
                CategoryService.getParentCategory(
                        Integer.valueOf(parentCategory), connection));

    } else if (StringUtils.paramSet(category)) {
        String categories = request.getParameter("category");
        if (StringUtils.paramSet(categories)) {
            request.setAttribute("CATEGORY",
                    CategoryService.listAllCategory(cat, connection));
        }
        dispatcher = request.getRequestDispatcher("jsp/pages/all.jsp");
    } else {
        request.setAttribute("CATEGORY",
                CategoryService.listAllCategory(cat, connection));

    }
    dispatcher.include(request, response);

    DBConnection.closeConnection(connection);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String action = request.getParameter("action");

    LOGGER.info("TESTING " + action);

    if (StringUtils.paramSet(action)) {
        connection = DBConnection.getConnection();
        Map<String, Object> resp = new HashMap<String, Object>();
        // resp.put("error", "Please fill in all fields");
         List<Category> categorySelectorList =
         CategoryService.listAllCategory(cat,connection);

         LOGGER.info("TESTING " + categorySelectorList);
        // resp.put("categorySelectorList", categorySelectorList);

        // LOGGER.info("TESTING 2 " + categorySelectorList);

        try {
            ResponseUtils.writeJson(resp, response);
        } catch (Exception e) {
            response.setContentType("application/json");
            response.getWriter()
                    .write("{\"error\" : \"An error occured please try again. If the error persists, please refresh your browser \"}");
        }
        DBConnection.closeConnection(connection);
    }
}
    <div class="control-group">
                            <label class="control-label" for="selectError">Select
                                Category</label>
                            <div class="controls">
                                <select id="parentCategorySelector" name="parentCategorySelector"
                                    data-rel="chosen">
                                    <c:forEach items="${PARENTCATEGORY}" var="parentcategory">
                                        <option value="${parentcategory.name}">
                                            <c:out value="${parentcategory.name}" />
                                        </option>
                                    </c:forEach>

                                </select>
                            </div>
                        </div> 
                        <div class="control-group">
                            <label class="control-label" for="selectError">Select
                                type</label>
                            <div class="controls">
                                <select id="categorySelector" name="categorySelector"
                                    data-rel="chosen">
                                    <c:forEach items="${CATEGORY}" var="subcategory">
                                        <option value="${subcategory.category}">
                                            <c:out value="${subcategory.category}" />
                                        </option>
                                    </c:forEach>

                                </select>
                            </div>
                        </div> 
var selectedValue = $(this).prop('value');
var selectedValue = this.value;  //<---using navtive js code is better
$.post('${PREFIX}/category', selectedValue, function(data) {
$.post('${PREFIX}/category', {parentCategory:selectedValue}, function(data) {
      $('#parentCategorySelector').change(function () {
            var selectedValue = this.value;
             if (selectedValue == '--Select a parent category--') {
                $('#categorySelector').empty();
            } else {
                $.post('${PREFIX}/category', {parentCategory:selectedValue}, function(data) {
                    $('#categorySelector').empty();
                    $.each(data.categorySelectorList, function(key, value) {
                        $('#categorySelector').append($('<option/>', {
                            value : value['id'],
                            text : value['category']
                        }));
                    });

                }, 'json');
            }

        });
public class CategoryServlet extends HttpServlet {

/**
 * serialization
 */
private static final long serialVersionUID = -2461387206258395143L;

private static final Logger LOGGER = Logger
        .getLogger(CategoryServlet.class);

private Connection connection = null;

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    connection = DBConnection.getConnection();

    RequestDispatcher dispatcher = request
            .getRequestDispatcher("jsp/pages/create.jsp");
    dispatcher.include(request, response);

    String id = request.getParameter("id");
    String category = request.getParameter("category");
    String parentCategory = request.getParameter("parentCategory");

    if (StringUtils.paramSet(id)) {

        request.setAttribute("CATEGORY", CategoryService.getCategoryById(
                Long.valueOf(id), connection));

    } else if (StringUtils.paramSet(parentCategory)) {

        request.setAttribute(
                "CATEGORY",
                CategoryService.getParentCategory(
                        Integer.valueOf(parentCategory), connection));

    } else if (StringUtils.paramSet(category)) {
        String categories = request.getParameter("category");
        if (StringUtils.paramSet(categories)) {
            request.setAttribute(
                    "CATEGORY",
                    CategoryService.listAllCategory(
                            Integer.valueOf(parentCategory), connection));
        }
        dispatcher = request.getRequestDispatcher("jsp/pages/create.jsp");
    } else {
        request.setAttribute(
                "CATEGORY",
                CategoryService.listAllCategory(
                        Integer.valueOf(parentCategory), connection));

    }
    dispatcher.include(request, response);

    DBConnection.closeConnection(connection);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    int parentCategory = Integer.parseInt(request.getParameter("parentCategory"));

    LOGGER.info("parentCategory id : " + parentCategory);

        connection = DBConnection.getConnection();

        Map<String, List<Category>> resp = new HashMap<String, List<Category>>();

        List<Category> categorySelectorList = CategoryService
                .listAllCategory(parentCategory,
                        connection);

        resp.put("categorySelectorList", categorySelectorList);

        response.setContentType("application/json");

        try {
            Gson gson = new Gson();
            String s = gson.toJson(resp);
            response.getWriter().write(s);

            LOGGER.info("TESTING mmmm : " + s);

        } catch (Exception e) {

            response.getWriter()
                    .write("{\"error\" : \"An error occured please try again. If the error persists, please refresh your browser \"}");
        }
        DBConnection.closeConnection(connection);
    }
    <div class="control-group">
                            <label class="control-label" for="selectError2">Select
                                Category</label>
                            <div class="controls">
                                <select id="parentCategorySelector" name="parentCategorySelector"
                                    data-rel="chosen">
                                    <option value="">--Select Category--</option>
                                    <c:forEach items="${PARENTCATEGORY}" var="parentcategory">
                                        <option value="${parentcategory.id}">
                                            <c:out value="${parentcategory.name}" />
                                        </option>
                                    </c:forEach>

                                </select>
                            </div>
                            </div>

                        <div class="control-group">
                            <label class="control-label" for="selectError2">Select
                                type</label>
                            <div class="controls">
                                <select id="categorySelector" name="categorySelector"
                                    data-rel="chosen">                                      

                                </select>
                            </div>
                        </div>