【问题标题】:Pass java arraylist to jsp through servlet and create field on the basis of size of arrayList通过servlet将java arraylist传递给jsp,并根据arrayList的大小创建字段
【发布时间】:2017-09-23 18:04:58
【问题描述】:
**=========================== 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的大小设计控件。

【问题讨论】:

  • 需要紧急帮助 ...我有两个选择第一个一个是,我直接从我的scriptlet调用java方法,但是为此,我面临一个问题,即如何将我的文本字段值作为参数传递给我的 java 函数。第二件事我将一个数组列表放入 servlet(就像我在示例代码中所做的那样),但我不知道如何将该数组列表传递给我的 jsp
  • re "Urgent/ASAP"(来源:link):“你最好不要在你的帖子中说明这一点。即使对你来说很紧急,也要意识到这并不紧急我们。这里的许多人对此感到不满,因为这对他们来说意味着 a) 发帖人认为他的帖子比其他人的帖子更重要(并不是因为这里的所有问题都同样重要), b) 发帖人想对那些利用自己的空闲时间来这里提供帮助的志愿者施加压力。”
  • 对不起....我当时没有那样做。

标签: java ajax jsp arraylist


【解决方案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

【讨论】:

  • 感谢您的回复。我只是举一个例子,如果我的 java 函数返回一个数组列表,我的 jsp 页面将如何访问它。
  • 在 servlet 的日志中它的打印输出正确,但它不会继续到 jsp ,它们给出 null
猜你喜欢
  • 2014-05-02
  • 2011-05-20
  • 2013-11-15
  • 2017-07-28
  • 1970-01-01
  • 2017-03-18
  • 2014-03-16
  • 2014-11-17
  • 1970-01-01
相关资源
最近更新 更多