怎么在jsp中遍历一个List,并且显示在页面中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在jsp中遍历一个List,并且显示在页面中?相关的知识,希望对你有一定的参考价值。

    可以用小脚本,如图

    也可以用jstl,如下图

    JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

    JSP技术有点类似ASP技术,它是在传统的网页html(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。

    用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

参考技术A

    用小脚本或jstl;

    jstl的用法:

    使用jstl标签 (可以和自定义标签配合使用)

    引用jstl标签;

    <s:property value="#vs.index+1"/>  ;

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  然后使foreach标签;

    <c:forEach items="$list" var="user" varStatus="vs">  

    <tr>  

    <td>  

    <s:property value="#vs.index+1"/>  

    </td>  

    <td align = "center">$user.PId</td>  

    <td align = "center">$user.PLoginname</td>  

    <td align = "center">$user.PUserName</td>  

    <td align = "center">$user.PEmail</td>  

    <td align = "center"><html:department pdeptid="$user.PDeptid"></html:department></td> <!-- 自定义标签 -->  ;

    </tr>  ;

    </c:forEach>  用<c:if test="$not empty list"></c:if>   和 <c:if test="$not empty list"></c:if> 处理”是否为空”情况。不为空,显示值为空,无记录。

    后台把list放到request.例如:request.setAttribute("list", XXXXlist);使用jsp内嵌java代码遍历List (在后台把List放到session中,如果是大数据量,不应使用此方法)

    首先在后台把list放入到session中;

    request.getSession().setAttribute(<span style="color:#ff0000;">Data.ALLNEWSLIST</span>, list);  

    红色标记的Data.ALLNEWSLIST 为常量 在com.xiami.onlineshop.common包下的Data类中定义;

    public static final String ALLNEWSLIST="ALLNEWSLIST";  

    <%@ page language="java" import="java.util.*,<span style="color:#ff0000;">com.xiami.onlineshop.common.*,com.xiami.onlineshop.data.*" </span>pageEncoding="GBK"%>  

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

    <html>  

    <head>  

    </head>  

    <body>  

    <%     

    String ntype=null;  

    int pagenum=1;  

    if(request.getParameter("pagecurrent")!=null)   

    pagenum=Integer.parseInt(request.getParameter("pagecurrent"));   

       

    List list=null;  

    if(session.getAttribute(Data.ALLNEWSLIST)!=null)  

    list = (List)session.getAttribute(Data.ALLNEWSLIST);  

    int l = list.size();  

    %>  

    <table border=1 width="100%">  

    <tr bgcolor="#8E8E8E">>>首页>商城动态</tr>  

    </table>  

    <br><br>    </font></center>  

    <font color=#272727>第<%=pagenum %>页<Br><br></font>  

    <table>  

    <%  

    for(int i=0;i<l;i++)  

    News news =(News)list.get(i);  

    ntype=news.getNtype();  

    %>  

    <tr bgcolor="#93FF93">  

    <td bgcolor="#6C6C6C"><%=news.getNid() %></td>  

    <td bgcolor="#ADADAD"><a href="servlet/ShowDetailNews?nid=<%=news.getNid() %>"><%=news.getNtitle() %></a></td>  

    </tr>  

    <%  

      

    %>  

    </table><br>  

    <a href="servlet/ShowAllNews?page=1&type=<%=ntype %>">首页</a>   

    <a href="servlet/ShowAllNews?page=<%=pagenum-1 %>&type=<%=ntype %>">上一页</a>   

    <a href="servlet/ShowAllNews?page=<%=pagenum+1 %>&type=<%=ntype %>">下一页</a>   

    <a href="servlet/ShowNewsEndPage?type=<%=ntype %>">尾页</a>  

    <%  

      

    %>  

    </body>  

    </html>  

    <%@ taglib prefix="s" uri="/struts-tags"%> 

    <s:iterator value="#request.userList" status="stat" id="sd">  

    <tr align="center">  

    <td>  

    <s:property value="#sd[6]" />  

    </td>  

    <td>  

    <s:property value="#sd[1]" />                             <span style="WHITE-SPACE: pre">                         </span></td>  

    <td>  

    <s:property value="#sd[2]"></s:property>  

    </td>  

    <td>  

    <s:property value="#sd[4]"></s:property>  

    </td>  

    <td>  

    <s:property value="#sd[5]"></s:property>  

    </td>  

    </tr>  

    </s:iterator>  

怎样在jsp页面提取list集合的第一位第二位第三位等等的数据

request.setAttribute("list",list);
上图是我用c标签把list集合里的数据遍历在网页上,我想知道怎样在jsp页面里怎样查看这个request里的list集合里第一个数据,第二个第三个等等怎么调用出来

通常list中存放的都是对象,直接通过对象的形式进行读取即可:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<table border="1">
<tr><th>用户ID</th>
<th>...</th>//表头
</tr>
<c:forEach items="$userinfo" var="user">//获取list
<tr>
<td>$user.XXX</td>//.出javabean的属性
<td>$user....</td>
</tr>
</c:forEach>
</table>
参考技术A $list[0]这样就好了,你要看第几条就输出几呗 参考技术B <c:forEach var="row" items="$result.rows">

以上是关于怎么在jsp中遍历一个List,并且显示在页面中?的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面中怎样获得list

用struts2标签在jsp页面中取得list的第一个元素

怎样在jsp页面提取list集合的第一位第二位第三位等等的数据

java中,怎么在jsp页面遍历map集合

java相关 关于List前台显示

jsp页面如何对map集合遍历