一、result常用的结果类型。
dispatcher 默认的结果类型。 转发。
redirect 重定向。
redirectAction :主要用于重定向到Action
如下 manage之间的重定向。
<action name= "login" class="cn.jbit.hrent.action.LoginAction" >
<result name="success" type="redirectAction">manage</result>
<result name="error" type="redirect">error.jsp</result>
<result name="input" type="dispatcher" >login.jsp</result>
</action>
<action name="manage" class= ="cn.jbit.hrent.action.UserAction" >
…
</action>
二、result的动态配置
配置时不知道执行的结果是哪一个,运行时才知道那个结果作为视图传递给用户。
1.可以实现user判断是管理员还是用户。
public class UserAction extends ActionSupport {
private String nextDispose;
public String login() {
...
if(user.isManager()){
nextDispose = "manager";
}else{
nextDispose = "common";
}
return SUCCESS;
}
public String getNextDispose(){
return nextDispose;
}
...
}
<struts>
<package name="default" extends="struts-default">
<action name="login"
lass="cn.jbit.houserent.action.UserAction" method="login">
<result type="redirectAction">${nextDispose}</result>
<result name="error">/page/error.jsp</result>
</action>
<action name="common"
class="cn.jbit.houserent.action.CommonUserAction">
…
</action>
<action name="manage"
class="cn.jbit.houserent.action.ManagerAction">
...
</action>
</package>
</struts>
全局结果可以满足一个包中多个Action共享一个结果。
<struts>
<default-action-ref name="defaultAction"/ >
<package name="default" extends="struts-default">
<global-results> //全局结果位于package内
<result name="error">/page/error.jsp</result>
<result name="login" type="redirect">/page/login.jsp</result>
</global-results>
<action name="login"
class="cn.jbit.houserent.action.UserAction" method="login">
<result>/page/manage.jsp</result>
<result name="input">/page/login.jsp</result>
<result name="error">/page/error.jsp</result> <span style="white-space:pre"> </span> // 此处的error 就不需要配置了
</action>
…
</package>
</struts>
如下的继承包也可以实现demo包的全局结果。
<package name="default" namespace="/" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
</package>
<package name="demo" namespace="/" extends="default">
<action name="..." class="...">
<result name="success">/success.jsp</result>
</action>
</package>