如何在JSP页面中显示来自Java Servlet的ArrayList集合?
嘿,我来帮你搞定在JSP里显示Servlet传递的列表这件事!
首先先把你没写完的Servlet代码补全——你已经把列表放到request属性里了,最后别忘了调用forward完成请求转发,这是把数据传递到JSP的关键步骤:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ArrayList<String> myList = new ArrayList<String>(); myList.add("cat"); myList.add("dog"); myList.add("frog"); request.setAttribute("list", myList); String nextJSP = "/index.jsp"; RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP); dispatcher.forward(request, response); // 补上这行完成转发 }
接下来给你两种在JSP中显示列表的方法,推荐第一种(更符合Java Web的最佳实践):
方法1:用JSTL + EL表达式(推荐)
这种方式不用在JSP里写Java代码,视图和逻辑分离更清晰。首先要在JSP顶部引入JSTL核心标签库:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
然后用<c:forEach>标签遍历列表,结合EL表达式${}取出数据:
<h3>我的动物列表</h3> <ul> <c:forEach var="animal" items="${list}"> <li>${animal}</li> </c:forEach> </ul>
var="animal":给遍历到的每个元素起个别名items="${list}":指定要遍历的集合,这里的list就是你在Servlet里用request.setAttribute设置的属性名
⚠️ 注意:如果用JSTL,要确保你的项目里已经引入了JSTL的jar包(比如jstl-1.2.jar),不然标签会失效。
方法2:用传统Java脚本(不推荐)
如果暂时不想用JSTL,也可以直接在JSP里写Java代码,但这种方式会让JSP变得混乱,维护起来麻烦,只做临时参考:
<h3>我的动物列表</h3> <ul> <% // 从request中取出列表,注意强制类型转换 ArrayList<String> list = (ArrayList<String>) request.getAttribute("list"); // 遍历输出每个元素 for(String animal : list) { %> <li><%= animal %></li> <% } %> </ul>
最后再提个小提醒:要确保你的Servlet在web.xml或者用注解@WebServlet配置了正确的访问路径,这样访问Servlet时才能触发doGet方法,把数据传递到JSP。
内容的提问来源于stack exchange,提问作者kieron
相关产品推荐
相关产品推荐

