日期:2014-05-20  浏览次数:20974 次

新手求教JSTL传值的一个小问题
<html>
 
  <body>
  <% 
  List<Diary>m_list = new LinkedList<Diary>();
  m_list=(List)request.getAttribute("list");
  int pageNo =0;
  request.setAttribute("pageNo",pageNo);
  %>
  <c:set var="pageNo" value="${pageNo}"> </c:set>  
  <a href='<c:url value="/rijifenye">
  <c:param name="pageNo" value="${pageNo}"/>

  </c:url>'>
  next
  </a>
  </body>
</html>
然后在rijifenyeServlet里面写:
PrintWriter m_writer = resp.getWriter();
int pageNo = Integer.parseInt(req.getAttribute("pageNo").toString());
m_writer.println(pageNo);
int pageNo = Integer.parseInt(req.getAttribute("pageNo").toString());这里报空指针异常
java.lang.NullPointerException
servlet.rijifenyeServlet.doGet(rijifenyeServlet.java:20)
请问哪里错了,正确的应该怎么写?

------解决方案--------------------
req.getParameter("pageNo")
------解决方案--------------------
获取页面的值用getParmameter();
------解决方案--------------------
楼上诸多正解
------解决方案--------------------
你这就要用req.getParameter("pageNo")了呀!
 <c:param name="pageNo" value="${pageNo}"/>
它是以?号传递过去的,所以得用req.getParameter("pageNo")
------解决方案--------------------
req.getAttribute("pageNo")获取对象 
req.getParameter("pageNo")获取页面字符串

------解决方案--------------------
对,就应该用req.getParameter("pageNo");取值
你之前的request.setAttribute("pageNo",pageNo);和连接没有在同一个请求中