[英]List.size() is null in my jsp but it shows result in my servlet page [duplicate]
我从 DAO class 中的 MySQL 数据库中检索一组数据,并将数据列表添加到方法中的列表中,然后在我的 servlet 中调用该方法添加到 setAttribute 方法
`public class EventDetailsServlet 扩展 HttpServlet { private static final long serialVersionUID = 1L;
@SuppressWarnings("null")
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
EventDao dao = new EventDao(ConnectionProvider.getConn());
List<EventDetails> list = dao.events();
req.setAttribute("eventdetails", list);
req.getRequestDispatcher("/coachhome.jsp").forward(req, resp);
if(list==null || list.size()==0){
System.out.println("Something went wrong!");
System.out.println(list.size());
}
}
}`
当我尝试从 servlet 获取属性并显示大小时,它返回 null 指针异常不知道该怎么办
<% ArrayList<EventDetails> list = new ArrayList<>();
list = (ArrayList<EventDetails>) request.getAttribute("eventdetails");
list.size(); //It gives a null pointer exception in the jsp page
%>
我在XML 文件中正确映射了 URL 模式仍然给出这样的错误
但是当我尝试在我的登录 servlet 页面中打印大小时,它会显示结果
这是我的 Dao class,我从数据库中获取数据并存储在我的列表中
public List<EventDetails> events() {
ArrayList<EventDetails> list = new ArrayList<>();
try {
String sql="select * from eventdetails";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while(rs.next()) {
EventDetails details=new EventDetails();
details.setEventId(rs.getInt("ideventdetails"));
details.setClubImage(rs.getBlob("clubImage"));
details.setEventName(rs.getString("eventName"));
details.setClubName(rs.getString("clubName"));
details.setDistrict(rs.getString("district"));
details.setState(rs.getString("state"));
details.setStartDate(rs.getDate("startDate"));
details.setEndDate(rs.getDate("endDate"));
list.add(details); //add the events to list
}
}catch(Exception e) {
e.printStackTrace();
}
return list;
}
根据 javadoc,当您在请求上调用setAttribute
时,然后使用req.getRequestDispatcher.forward(req, resp)
转发它,该属性将传递给您转发到的 servlet。
所以解释必须是以下之一:
"eventdetails"
设置的值是null
,或者EventDetailsServlet
转发到特定的 JSP,或者笔记:
ArrayList<EventDetails>
的类型转换正在执行未经检查的转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.