我有servlet,它将map对象从servlet传递给jsp,在jsp中,我将迭代地图并显示值。但是当我在setattribute方法
中传递map对象时,我得到空指针异常try
{
Map<String,String> A=new HashMap<String,String>();
Class.forName("com.mysql.jdbc.Driver");
connect=(Connection) DriverManager.getConnection("Connection");
statement =(Statement)connect.createStatement();
result=(ResultSet)statement.executeQuery("query");
while(result.next())
{
A.put(result.getString("Hi"),result.getString("Hello"));
}
ServletContext context=getServletContext();
request.setAttribute("A",A); // when I run i getting nullpointer exception here
RequestDispatcher rd=context.getRequestDispatcher("/next.jsp");
rd.forward(request, response);
stacktrace:
java.lang.NullPointerException at search.classy.ClassDB.dbConnect(ClassDB.java:61)
答案 0 :(得分:0)
使用JSP标记:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<c:forEach var="i" items="${A.keySet()}">
Key <c:out value="${i}"/>
Value <c:out value="${A.get(i)}"/>
</c:forEach>
</body>
</html>
如果有语法错误,我很抱歉,我在这里没有dev环境来检查语法。但你应该有一个线索,如何解决你的问题。
答案 1 :(得分:0)
map,即你的案例中的A应该放在响应对象中。 作为响应请求,它不会从服务器向客户端发送内容。