关于jsp中使用request.setAttribute的诡异问题
今天在做struts2实验的死后遇见了一个诡异的问题,望各位大大帮忙想想问题出在哪。
在jsp中使用了request.setAttribute放入一个值;
然后无论是在Action中,还是在另一个jsp中,使用request.getAttribute将其取出,得到的都为空;
但是,在页面上我也同时使用了隐藏域,在Action和jsp都能正确的通过request.getParameter获取到值。
如:
第一个jsp的代码:
Java code
<%request.setAttribute("mes", "123"); %>
<form name="1" action="2.jsp">
<input type="hidden" value="hidden" name="hidden"/>
<input type="submit" value="go"/>
</form>
跳转页面的jsp代码:
Java code
<%String s = (String)request.getAttribute("mes");
String r = request.getParameter("hidden");
%>
<%=s %>
<%=r %>
页面显示的结果:
null hidden
这个问题是什么原因造成的呢?难道是request.setAttribute没有将值放入到request中?
这种问题,不大不小,如鲠在喉啊,十分难受,望各位前辈不吝赐教啊~~~~~~~~
------解决方案--------------------提交应该是只提交了表单(form)里的内容,再提交的时候等于重定向。
------解决方案--------------------request作用域 一次请求范围内 当你访问1.jsp时,算一次请求,当form表单提交到2.jsp,算另一个请求,因为2个是不同的请求,所以不能共用request域中的数据。顶2楼