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

jsp页面得不到值。。
一个servlet向jsp页面传数据。

servlet里面我写了
request.setAttribute("totalPages", totalPages);
request.getRequestDispatcher("/WEB-INF/jsp/user/listUser.jsp").forward(request, response);

jsp页面写了一个小脚本
<%
String totalPages = request.getParameter("totalPages");
%>

jsp中一直是null,正确的应该怎么写呢?

------解决方案--------------------
<%
String totalPages = request.getAttribute("totalPages");
%>
------解决方案--------------------
注意如下红字部分

request.setAttribute("totalPages", totalPages);

<%
//String totalPages = request.getParameter("totalPages");
//上句改成如下:
String totalPages = request.getAttribute("totalPages");

%>
或${totalPages}


------解决方案--------------------
1 request 设置的参数,只能在当前页面使用,所以只有forward的页面才能读取到。
2 setAttribute 对应的是 getAttribute

------解决方案--------------------
二楼的正解,但request.getAttribute("totlaPages")得到的是Object类型的,所以当赋值给String的变量引用时,需要强转一下
Java code
String totalPages = [color=#FF0000](String)[/color]request.getAttribute("totlaPages")

------解决方案--------------------
看来LZ Attribute和Parameter有点不分呀

setAttribute是对你页面的自己定义的对象进行操作的

而getParameter是对你的表单的元素进行操作的
------解决方案--------------------
楼上正解,setAttribute是你对自己在后台经过处理的对象用于页面而用的,而getParameter是用于把网页上的表单中的数据传到后台处理用的,两个函数的使用场景是相反的