所以我在java servlet中创建了这个简单的列表,我希望在JSP页面中显示它。 Servlet代码:
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文件中打印:
<%@page import="java.io.*" %>
<%@page import="java.net.*" %>
<%@page import="java.util.*" %>
<%@page import="java.util.List" %>
<%@page import="java.util.ArrayList" %>
<%@page language="java" import="myPackage.*" %>
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
<% List<String> myList = (ArrayList<String>)
request.getAttribute("list"); %>
<% out.println(myList); %>
</body>
</html>
任何帮助将不胜感激!
答案 0 :(得分:1)
HTTP 500
错误来自这一行:
<% List<String> myList = (ArrayList<String>)
request.getAttribute("list"); %>
它有额外的()
,删除它并按下面的方式设置,然后HTTP 500
将显示,而不是你会收到警告Type safety:Unchecked cast from Object to ArrayList<String>
,但这并不重要
关于如何打印ArrayList,如果你的jsp页面中有import JSTL
标签,你可以按照下面的说法进行操作,之前的答案已经提到:
<c:forEach var="li" items="${list}">
<c:out value="${li}"/>
</c:forEach>
如果您不想使用JSTL
,可以使用java代码进行打印:
<% for(int i=0;i<myList.size();i++){
out.println(myList.get(i));
} %>
答案 1 :(得分:0)
好的,您有HTTP 500错误消息,我怀疑它来自您的代码的以下部分:
String
请记住,此处使用的out不是System.out,并且行为方式不同。而是尝试(替换以下提到的行):
10
答案 2 :(得分:0)
您可以使用核心标记foreach作为
<c:forEach var="list" items="${YourList}">
<c:out value="${list}"/>
</c:forEach>