1.Result
1)name可以是定义的任意字符,和Action返回的结果一致就好
2)result配置一般是使用绝对路径,绝对路径以“/”开头
3) 跳转
(一)页面跳转
重定向(dispatcher)type="dispatcher"
转发(redirect) type="redirect"
(二)跳转到另外一个action
重定向 type="chain"
转发 type="redirectAction"
2.全局结果
1)可以满足多个Action共享一个结果
2)怎么使用:
<struts>
<package name="main" namespace="/main" extends="struts-default">
<span style="color:#FF0000;"> <global-results>
<result name="main">/main.jsp</result>
</global-results> </span>
</package>
<package name="user" namespace="/user" <span style="color:#FF0000;">extends="main"</span>>
<action name="deleteUser" class="com.wj.struts2.action.UserAction" method="deleteUser">
<result name="success">/success.jsp</result>
<result name="failue">/failure.jsp</result>
</action>
</package>
</struts>
配置全局结果集时需要注意以下两个问题
1.访问同一个包内的全局结果集,直接在action中return这个结果集的name即可。
2.访问的全局结果集如果与action不在同一个包中,则action所在的包要继承全局结果集所在的包。
注意:当所有Action需要共享某个结果时,可以定义为全局结果。比如,类似登录页面这样的公共页面、错误页面、异常页面
3.nameSpace命名空间
1)命名空间为空,或者明明空间为“/”时,不管路径嵌套的有多深,只要Action的名字匹配上就可以
2)有命名空间,一般以模块进行命名,比如是用户登陆的控制,可以取名为:namespace="/user",建议"/"要加上,需要注意的是:在form表单里的action的路径也要加上"/user/action的名字"
4.根据模块拆分struts.xml文件
5.异常机制
是什么?
指定在Action方法抛出指定异常的时候跳转到哪个指定的结果视图
怎么用?
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
6.访问Servlet API
(一)Struts2提供的方法
获取request
Map<String, Object> request = (Map<String, Object>) ActionContext.getContext().get("request");
获取Session
Map<String, Object> session = (Map<String, Object>) ActionContext.getContext().getSession();
获取application
Map<String, Object> application = (Map<String, Object>) ActionContext.getContext().getApplication();
(二)实现RequestAware,SessionAware,ApplicationAware接口