发布网友 发布时间:2022-04-23 05:31
共1个回答
热心网友 时间:2023-10-16 13:26
不能这么请求。 因为页面上的request 和使用form提交的request 请求 不是一个对象。测试如下: 首先在jsp页面中打印出来request对象 部分action代码如下: HttpServletRequest request = ServletActionContext.getRequest(); System.out.println("request="+request+"action里的request对象"); String test = (String) request.getAttribute("test"); System.out.println("test="+test); 经过测试 输出结果如下: request=org.apache.struts二.dispatcher.StrutsRequestWrapper@一99f0e5返回页面对象 request=org.apache.struts二.dispatcher.StrutsRequestWrapper@一9陆陆5e一action里的request对象 test=null request=org.apache.struts二.dispatcher.StrutsRequestWrapper@一9陆陆5e一返回页面对象 说明: 输出结果第一行 是第一次加载请求页面时,调用当前页面的request对象(其实我们打开请求页面时产生的请求对象) 第二行 是我用form 提交然后在action里获取的request对象,可以看到两个request对象的类型是一样的 但是值却不一样,这正好说明了 我们每次请求 都会重新产生一个request对象。 到这里,第三行就毫无疑问了,既然重新生成了request对象 那当然不会有我们之前set的属性咯。 第四行很关键,我们看到了那个action里的request对象 返回到了页面上,他们是同一个类型,同一个对象。这正好说明了 当我们的响应模式为dispatcher时 request参数也会返回到页面,因为request对象没有变。 希望对你有所帮助!