复习struts2之访问或添加属性

来源:互联网 发布:网络技术支持与维护 编辑:程序博客网 时间:2024/04/30 11:34
在struts2的action中并没有使用到servletAPI ,所以在方法中无法得到request,session和application对象,但在开发中我们又经常需要用到这些对象,该怎么办呢?实例1:(如仅仅只是访问或往三个范围中放入属性推荐使用下面这种方法)Action中public String execute(){ActionContext ctx = ActionContext.getContext();//往ServletContext里放入app   ctx.getApplication().put("app", "application应用范围");   ctx.getSession().put("ses", "session范围");//往session里放入ses   ctx.put("req", "request范围");//往request里放入reqreturn "success";}Struts.xml文件<action name="helloword" class="cn.itcast.action.HelloWordAction" method="execute"><result name="success">/WEB-INF/page/message.jsp</result></action>访问路径:http://localhost:8080/struts2/test/helloword.do结果:application应用范围 session范围request范围如果想要得到站点目录下的某一个文件的路径就需要得到request对象【request.getRealPath(arg0);】,那么该怎么办呢?得到request对象、session对象和application对象有两种方法:方法一: 通过ServletActionContext.类直接获取:实例2:Action中public String rsa() throws Exception{HttpServletRequest request = ServletActionContext.getRequest();ServletContext servletContext = ServletActionContext.getServletContext();request.setAttribute("req", "请求范围属性");request.getSession().setAttribute("ses", "会话范围属性") ;servletContext.setAttribute("app", "application。。。。");//HttpServletResponse response = ServletActionContext.getResponse();return "success";}配置文件struts.xml中<action name="helloword" class="cn.itcast.action.HelloWordAction" method="rsa"><result name="success">/WEB-INF/page/message.jsp</result></action>Jsp页面    ${applicationScope.app} <br>    ${sessionScope.ses}<br>${requestScope.req}<br>访问路径:http://localhost:8080/struts2/test/helloword.do结果:application。。。。 会话范围属性请求范围属性方法二:实现指定接口,由struts框架运行时注入

原创粉丝点击