日期:2014-05-18  浏览次数:21149 次

request.setAttribute()怎么就取不到值
我在ACTION 中request.setAttribute(“name”,List);
JSP页面中request.GetAttribute("name");
为什么页面中就取不到值呢?在ACTION 中值是实在存在的~我的JSP页面是window.open("<%=request.getContextPath()%>/action/addCondition.jsp");

我还用了另外一中方法第一个JSP页面提交到ACTION中的时候,open一个新窗口。并在ACTION中把数据封装到了一个vo中。在OPEN的JSP中能取到值但是总是晚一步。比如说第一JSP传的是1,VO中封装了1。JSP传递的是2,vo中封装的是2。但实际效果是第一次请求传递1后第2个JSP页面为NULL。第2次请求传递2或者其他更多其他参数的时候,第2个JSP页面显示的却是1。就是第2个JSP页面会显示上一次应该得到的值~非常郁闷~

------解决方案--------------------
探讨
window.open(" <%=request.getContextPath()%>/action/addCondition.jsp");
取不到值是你这样转向的问题,你如果换成session存,这样就可以取到,用request存,在服务器端转各可以取到,
window.open()是基于浏览器的,取不到值是对的,

------解决方案--------------------
jsp1提交参数到ACTION和OPEN一个新窗口JSP2
其实你在submit的时候肯定就open了 这个时候你确定你的action已经在后台处理完数据对数据进行封装了吗 你forward到新页面还是能够取到的
在不然根据你的需求用session也是不行的 除非你把提交给action的参数传给jsp2里面 
例如:
onsubmit=function()
{

window.open(jsp2.jsp?parame1=***&....)

}
jsp2.jsp中使用
<c:import url="***.action/do?parame1=***&"></c:import>
后面加处理代码
MovementCondition ac = new MovementCondition();

List li = (List) ac.getConditionC()
确保数据处理过后进行调用处理
------解决方案--------------------
探讨
jsp1提交参数到ACTION和OPEN一个新窗口JSP2
其实你在submit的时候肯定就open了 这个时候你确定你的action已经在后台处理完数据对数据进行封装了吗 你forward到新页面还是能够取到的
在不然根据你的需求用session也是不行的 除非你把提交给action的参数传给jsp2里面
例如:
onsubmit=function()
{

window.open(jsp2.jsp?parame1=***&....)

}
jsp2.jsp中使用
<c:import url="***.action/do?parame1=***&"> …