一、结果跳转方式
《1》转发(地址栏不会变)
ServletDispatcherResult类
例:
ActionDemo1.java
复制代码
1
2
3
4
5
6
7
8
9
10
11package com.zl.action; import com.opensymphony.xwork2.ActionSupport; public class ActionDemo1 extends ActionSupport{ @Override public String execute() throws Exception { return SUCCESS; } }
struts.xml
复制代码
1
2
3
4
5
6
7
8
9
10
11<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="result" namespace="/" extends="struts-default"> <action name="ActionDemo1" class="com.zl.action.ActionDemo1" method="execute"> <result name="success" type="dispatcher">/index.jsp</result> </action> </package> </struts>
《2》重定向(地址栏会发生变化)
ServletRedirectResult类
ActionDemo2.java同ActionDemo1.java,不再重复。
struts.xml中将上述struts.xml中的result元素的type属性值改为redirect即可。
《3》转发到Action(地址栏不会变)
复制代码
1
2
3
4
5
6<action name="ActionDemo3" class="com.zl.action.ActionDemo3" method="execute"> <result name="success" type="chain"> <param name="actionName">ActionDemo1</param> <!--跳转到ActionDemo1--> <param name="namespace">/</param> </result> </action>
《4》重定向到Action(地址栏会发生变化)(常用)
复制代码
1
2
3
4
5
6<action name="ActionDemo4" class="com.zl.action.ActionDemo4" method="execute"> <result name="success" type="redirectAction"> <param name="actionName">ActionDemo1</param> <!--跳转到ActionDemo1--> <param name="namespace">/</param> </result> </action>
二、Struts2访问ServletAPI
原理:
有以下三种方式:
《1》通过ActionContext(重点)
复制代码
1
2
3
4
5
6
7
8
9
10
11//request域=>map(Struts2并不推荐使用原生request域) Map<String,Object> requestScope = ActionContext.getContext().getRequest(); ActionContext.getContext().put("name","requestTom");//推荐 //session域=>map Map<String,Object> sessionScope = ActionContext.getContext().getSession(); sessionScope.put("name","sessionTom"); //application域=>map Map<String,Object> applicationScope = ActionContext.getContext().getApplication() applicationScope.put("name","applicationTom");
《2》通过ServletActionContext(不推荐,因为Struts的理念就是要脱离Servlet)
复制代码
1
2
3
4
5
6
7
8
9
10
11//原生的request HttpServletRequest request = ServletActionContext.getRequest(); //原生的session HttpSession session = request.getSession(); //原生的response HttpServletResponse response = ServletActionContext.getResponse(); //原生的ServletContext ServletContext servletContext = ServletActionContext.getServletContext();
《3》实现接口...Aware
最后
以上就是陶醉口红最近收集整理的关于Java EE SSH框架之Struts2(3)—— 结果跳转方式和访问ServletAPI方式的全部内容,更多相关Java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复