解决一下如何在jsp页面中获取ArrayList的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决一下如何在jsp页面中获取ArrayList的值相关的知识,希望对你有一定的参考价值。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
try
//实例化Login对象
System.out.println("-------------------");
response.setCharacterEncoding("UTF-8");
super.doPost(request, response);
BasicMaintain basicMaintain=new BasicMaintain();
basicMaintain.execut(request, response);//数据传递
ArrayList<BasicMaintainInfo> ret=basicMaintain.dataPackageProcess();
System.out.println("---------ret----------");
if(ret!=null)
request.getSession().setAttribute("aust", ret);
System.out.println("---------是这儿吗?----------");
response.sendRedirect("dishesManagement/basicMaintainInfo.jsp");
else
request.getSession().setAttribute("ServletDishesQueryNull","没有相关数据");


catch(Exception e)
e.printStackTrace();

jsp页面第一行的那个引用,把你的list中的对象引入进去,还有list.就像我下面的引入我自己的类
<%@ page language="java" import="java.util.*,com.ecside.solutionadmin.view.SolutionVO,com.ecside.solutionadmin.view.SolutionNoteVO" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
jsp中也是可以写java代码的
<%
SolutionVO solutionVO = new SolutionVO();
if(request.getAttribute("solutionVO")!=null)
solutionVO = (SolutionVO)request.getAttribute("solutionVO");
else
solutionVO.setChangeId("");
%>
上面是你像你servlet传给页面的对象
下面是处理这个对象里的一个List集值.
<% if(solutionVO.getIntegralityList()!=null&&solutionVO.getIntegralityList().size()!=0)
for(int vin=0;vin<solutionVO.getIntegralityList().size();vin++)
String path = solutionVO.getIntegralityList().get(vin).getPath();
int isLocalHostFile = path.indexOf("kmid");
//第一次时要将“数据完整性测试方案:”等字样显示出来
if(vin==0)%>
<tr>
<td id="inTD" width="30%" rowspan="<%=solutionVO.getIntegralityList().size()%>">
测试方案:<a href="#" name="integrality" onclick="openUpload(this);">上传</a>
</td>
<td>
<%=solutionVO.getIntegralityList().get(vin).getFileName()%>
</td>
<td>
<a href="#" onclick="deleteFile(<%=solutionVO.getIntegralityList().get(vin).getId()%>);">删除</a>
<%if(isLocalHostFile < 0) %>
<a href="download.action?changeId=<%=solutionVO.getChangeId()%>&fileId=<%=solutionVO.getIntegralityList().get(vin).getId()%>">下载</a>
<%else %>
<a href="<%=solutionVO.getIntegralityList().get(vin).getPath()%>" target="_blank">下载</a>
<% %>
</td>
</tr>

应该看得懂吧?有问题再问我
参考技术A 1、比如在ArrayList中存放的是一个bean,则取值方法:
beanname bn=new beanname();
bn=(bn)arraylist.get(i);
bn.getXXX();就是要取的值

2、如果在ArrayList中存放的是一般的数值:
String s=(String)arraylist.get(i);
int i=(int)arraylist.get(i);
参考技术B jsp页面
你在页面上使用List及的引入List相关包,jsp页面默认会有下面第一句(import="java.util.*;" 这个里面就包含了)
<%@ page language="java" import="java.util.*;" pageEncoding="UTF-8"%>
<%
//你在servlet中存到session中了,在这里用session获取即可
List l = session.getAttribute("aust");
%>

PS:有什么问题可以百度Hi我,good luck!本回答被提问者采纳
参考技术C 饿 不知道啊

如何将两个不同的 ArrayList 从 Servlet 发送到 JSP

【中文标题】如何将两个不同的 ArrayList 从 Servlet 发送到 JSP【英文标题】:How to send two different ArrayList from a Servlet to a JSP 【发布时间】:2016-04-01 18:22:09 【问题描述】:

我会尽量用几行来说明清楚,只显示基本代码。 正如我在标题中所说,我必须将两个数组列表从一个 servlet 发送到一个 JSP 页面。不幸的是,我不知道如何将多个数组列表发送到 JSP,但我只知道如何发送一个。我通常使用这个程序:

例子

ArrayList<ClassA> array_A = new ArrayList<ClassA>();

// [...] After some operations and have filled the array_A with objects of class ClassA

ServletContext sc = request.getSession().getServletContext();
request.setAttribute("Attribute", array_A);
RequestDispatcher rd = sc.getRequestDispatcher("/MyJSP.jsp");
rd.forward(request,response);
request.getSession().removeAttribute("Attribute");

此过程允许我将一个数组列表发送到 JSP 页面。如何发送两个不同的arraylist?比如我需要发送这两个arraylist:

ArrayList<ClassA> array_A = new ArrayList<ClassA>();
ArrayList<ClassB> array_B = new ArrayList<ClassB>();

// [...] After some operations and have filled array_A with objects of class ClassA 
// & array_B with objects of class ClassB

如何将这两个数组从 servlet 发送到 JSP 页面?你能把代码分享给我吗?如果我没有那么严格,我很抱歉。

【问题讨论】:

将另一个放在第二个请求属性中,使用不同的名称。 @JBNizet 只需添加另一个 request.setAttribute ("Attribute_two", array_B);紧接在第一个之后? 之后或之前,都没有关系。一个请求有很多属性。一个属性有一个名字和一个可以是任何东西的值。最后,您将请求转发给 JSP,JSP 因此可以从请求中获取 servlet 之前存储的所有属性。这基本上就像把各种各样的东西放在一个盒子里,然后把盒子送给别人。 非常感谢您的解释,找到解决方案非常有帮助:-) 【参考方案1】:
request.setAttribute("array_A", array_A);
request.setAttribute("array_B", array_B);

jsp内(使用jstl核心库时,前缀c

<c:forEach var="itemA" items="$array_A">
      <!-- some code here -->
</c:forEach>

<c:forEach var="itemB" items="$array_B">
      <!-- some code here -->
</c:forEach>

【讨论】:

非常感谢您的回答,问题已解决:-)

以上是关于解决一下如何在jsp页面中获取ArrayList的值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JSTL 在 jsp 页面中迭代 ArrayList<HashMap<String, String>>

你好,请问一下你的jsp页面连接数据库后是空白是怎么解决的?

如何在jsp中显示java中的ArrayList项?

我想问一下如何获取ajax传过来的数据,比如在.cs或者在jsp页面获取ajax传过来的数据,然后写入数据库。

如何将两个不同的 ArrayList 从 Servlet 发送到 JSP

如何使用java和jsp和extjs将java arraylist转换为json数组存储数据