http://blog.sina.com.cn/s/blog_61feef0c0100qdzu.html
Struts2获取request三种方法
struts2里面有三种方法可以获取request,最好使用ServletRequestAware接口通过IOC机制注入Request对象。
在Action中获取request方法一:
<wbr></wbr>
在Action中的代码:
Map request = (Map)ActionContext.getContext().get("request");
List<Task> tasks = taskManager.findAll();
request.put("tasks", tasks);
<wbr></wbr>
在JSP页面中获取其中的值:
<s:iterator id="task" value="#request.tasks">
<wbr><wbr><span></span><wbr><span></span><wbr><span></span><tr class="table_header"></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr><span></span><wbr><td><s:property value="#task.tname"/></td></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr><span></span><wbr><td><s:property value="#task.tuid"/></td></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr><span></span><wbr><td><s:property value="#task.tstartTime"/></td></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr><span></span><wbr><td><s:property value="#task.tendTime"/></td></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr><span></span><wbr><td><s:property value="#task.tstate"/></td></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr><span></span><wbr><td><input type="radio" id="choose" name="choose" onclick="getId(this.value)" value="<s:property value='#task.tid'/>"/></td><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr><span></span></tr></wbr></wbr></wbr></wbr>
</s:iterator>
--------------------------------------------------------------------------------------------
方法二:通过ServletActionContext类来获取,使用struts2经验如果处理get传参是中文,只能使用该方法进行处理乱码问题
<wbr></wbr>
Action中代码:
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("username", "zhangsan");
<wbr></wbr>
在jsp中获取其中的值
<wbr><wbr><span></span><wbr><span></span><s:property value="#request.username">或者${requestScope.req}</wbr></wbr></wbr>
--------------------------------------------------------------------------------------------<wbr></wbr>
方法三:通过ServletRequestAware接口通过IOC机制注入Request对象
Action中的代码:
Action实现ServletRequestAware接口,实现接口中的方法
<wbr><wbr><span></span><wbr><span></span>private HttpServletRequest request;</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>//实现接口中的方法</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>public void setServletRequest(HttpServletRequest request){</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr>this.request = request;</wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>}</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>//然后在execute()方法中就可以使用了</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>public String execute(){</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr>request.setAttribute("username", "zhangsan");</wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span><wbr>request.getSession().getServletContext().getApplication(); //得到Application</wbr></wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>}</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>该方法必须要实现,而且该方法是自动被调用</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>这个方法在被调用的过程中,会将创建好的request对象通过参数的方式传递给你,你可以用来赋给你本类中的变量,然后request就可以使用了</wbr></wbr></wbr>
<wbr><wbr><span></span><wbr><span></span>注意:setServletRequest()方法一定会再execute()方法被调用前执行</wbr></wbr></wbr>
<wbr></wbr>
在jsp页面中获取其中的值
<s:property value="#request.task.tname"/>
分享到:
相关推荐
struts2 获取request session对象
struts2获取request的四种不同的方式
struts2中获得request对象的几种方法
Struts2中获得Request,Response的几种方法,有代码作为参考。
Struts2的Action中获得request response session几种方法
struts2中request和session的获取
Struts2上传文件(直接用request)
STRUTS2获得session和request
struts2访问application、session以及request等web资源的示例代码
RequestMap,SessionMap,ApplicationMap, AttributeMap. struts提供两种方式访问session,request ,response,ActionContext 使用。 获得作用域及参数响应对象及三种符号说明
从开发者角度看,就是说需要显示给用户的数据可以直接从Action中获取,而不像Struts1.x那样,必须把相应的Bean存到Page、Request或者Session中才能获取。Struts1.x 必须继承org.apache.struts.action.Action或者其...
STRUTS2 s:fielderror 会给我们软件开发人员带来很多不方便。而且STRUTS2提供的样式也很难调整(需要结合STRUTS...我在国外的网站上找到了获取ERROR的方法(request.getAttribute) 能取到你怎么改都行了。 请下载附件。
该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true.如果需要关闭动态方法调用,则可设置该属性为false. struts.enable.SlashesInActionNames 该属性设置Struts 2是否允许在Action名中使用斜线,该属性的...
NULL 博文链接:https://fish198398.iteye.com/blog/785319
而不像Struts1.x那样,必须把相应的Bean存到Page、Request或者Session中才能获取。 Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。 Struts 2无须继承任何类型或实现...
1、分别导入三个框架需要的包。 2、写pojo. 3、配置web.xml (分别配置sping,struts) 4、写sping的application和applicationservices或者其它配置.(可对些文件分为其它文件,在web.xml中注册即可) 5、配置struts.xml ...
获得request对象: A . HttpServletRequest request = ServletActionContext.getRequest (); B.ActionContext ct= ActionContext.getContext() HttpServletRequest request= (HttpServletRequest)ct.get...
传值问题 在其中取值的方法有两种: #+映射名, 直接写映射名。 1.不加#的方式获取(所有对象放置在栈顶): a.XXaction中有该字段的成员变量. b.XXaction中该对象返回个给...页面struts2标签保存的数据也需要使用#来获取
该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 struts.enable.SlashesInActionNames 该属性设置Struts 2是否允许在Action名中使用斜线,...
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1126042