【问题标题】:Send ArrayList from a JSP page to servlet when submitting a form提交表单时将 ArrayList 从 JSP 页面发送到 servlet
【发布时间】:2014-04-14 15:16:31
【问题描述】:

当在 JSP 页面上提交表单时,我想将 ArrayList 从 JSP 页面检索到 servlet。我正在尝试以下代码:

Pass.jsp的代码是:

<form action="GetListServlet">
<%
    ArrayList al=new ArrayList();
    al.add("Naman");
    al.add("Gupta");
    request.setAttribute("allnames", al); 
%>
<input type="submit" value="Show List"></form>

GetListServletdoGet()方法是:-

protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
{
    ArrayList al=(ArrayList)request.getAttribute("allnames");
    System.out.print(al.get(0));
} 

但我收到了NullPointerException at System.out.print(al.get(0))

谁能告诉我如何在 servlet 页面上获取 jsp 页面的数组列表?

【问题讨论】:

  • 试试这个[链接][1]。这提供了更好的解决方案。 [1]:stackoverflow.com/questions/17988612/…
  • 我认为您对request 是什么有一个普遍的误解。你应该用纯 HTML 解决这个问题,然后尝试使其动态化。

标签: jsp servlets


【解决方案1】:

最简单的解决方案是将您的数组存储到响应中并将其发送回服务器。相反,使用session.setAttribute("allnames", al); 将您的列表存储到会话中并以类似的方式获取它:ArrayList al=(ArrayList)request.getSession().getAttribute("allnames");。您不必将数组发送给客户端并再次返回。

但如果你真的想要,你可以将数组存储为隐藏的 HTML 输入字段列表,然后使用 String[] al=request.getParameterValues('allnames'); 从 servlet 获取它们。

【讨论】:

  • 很抱歉投了反对票,但在此处添加会话会使其更加混乱并引入一系列新问题。
  • 请您详细说明为什么使用会话会令人困惑,隐藏表单字段和获取一个参数的所有值有什么问题?问题显然是关于将数据列表从一个请求传递到另一个请求。
猜你喜欢
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2012-11-11
  • 2016-10-10
  • 1970-01-01
  • 2018-08-20
相关资源
最近更新 更多