有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ajax通过servlet将java arraylist传递给jsp,并根据arraylist的大小创建字段

**=========================== MY JAVA FUNCTION RETURNS AN ARRAYLIST============  
   public ArrayList<Class1> getDetails(String id, String year) {
            ArrayList<Class1> arraylist1 = new ArrayList<Class1>();
           return arraylist1;
    }
============================== SERVLET CODE =================================    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            try{
                String operation=request.getParameter("operation");
                log.debug("Operation : "+operation);
                Class1 obj1 = new Class1();
                response.setContentType("text/plain");
                PrintWriter out = response.getWriter();
                if(operation.equals("getDetails")){
                    ArrayList<Class1> record1 = new ArrayList<Class1>();
                    String id = request.getParameter("id_code");
                    String year = request.getParameter("fin_yr");
                    if(id != null) {

                        record1 = obj.geDetails(id, year);
                    } 
                        out.print(record1);
                }
            }  catch(Exception e){ 
                log.error("Exception : "+ e.toString());
            }
        }
======================JSP CODE=====================================
if($('idCode').val() != ""){
            $('#IdCode').focus(function(){
                var fYear = $('#txtYear :selected').attr('label');

                htmlObj = $.ajax({
                    type: "GET",
                    url: "Servlet1",
                    data: "operation=getDetails&id_code="+  $('#IdCode').val() + "&fin_yr="+ fYear,
                    async: false,
                    contentType:"text/html; charset=utf-8",
                    dataType:"html",
                    success: function(result){

                        }
                    }
                    });
            }); 
        }** 

在上面的代码中,我添加了一个伪函数,该函数将在servlet调用该函数后返回arrayList。现在我的问题是如何将arraylist放入五月jsp页面。 我将arraylist正确地添加到servlet中,我不知道如何将它添加到jsp页面中,并根据sevlet返回的servlet大小设计控件


共 (1) 个答案

  1. # 1 楼答案

    您没有向列表中添加元素。所以,即使你在列表上迭代,里面也不会有任何元素。基本上,您可以使用java代码在jsp上的列表之间进行迭代:<;%…%>; 但这不是最佳实践

    您可以在回复中包括您的列表:

    request.setAttribute("list", categoryList);
    

    在jsp上,你可以得到它,并在上面迭代:

        <%  
    // retrieve your list from the request, with casting 
    ArrayList<Category> list = (ArrayList<Category>) request.getAttribute("list");
    
    // print the information about every category of the list
    for(Category category : list) {
        out.println(category.getId());
        out.println(category.getName());
        out.println(category.getMainCategoryId());
    }
    %>
    

    请看这个答案:Passing ArrayList from servlet to JSP