(10)global-results、继承包

来源:互联网 发布:时时彩做计划软件 编辑:程序博客网 时间:2024/06/06 15:44

在一个网站中,通常会有共同的界面,若每个package下都写一个错误页面或者重返主页面,比较麻烦。当当前的action中没有对应的result时,则会找该包下global-result,若该包下没有,则会找父类的global-result
以此类推。
下面的例子:
struct.xml

<struts>    <constant name="struts.devMode" value="true" />    <package name="user" namespace="/user" extends="struts-default">        <global-results>            <result name="mainpage">/main.jsp</result>        </global-results>        <action name="index">            <result>/index.jsp</result>        </action>        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">            <result>/user_success.jsp</result>            <result name="error">/user_error.jsp</result>        </action>           </package>    <package name="admin" namespace="/admin" extends="user">        <action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">            <result>/admin.jsp</result>        </action>    </package></struts>

UserAction

public class UserAction extends ActionSupport {    private int type;     //省略getter、setter    @Override    public String execute() throws Exception {        if(type == 1) return "success";        else if (type == 2) return "error";        else return "mainpage";    }}

AdminAction

public class AdminAction extends ActionSupport {    @Override    public String execute() throws Exception {        return "mainpage";    }}

index.jsp

Result类型<ol>    <li><a href="user/user?type=1">返回success</a></li>    <li><a href="user/user?type=2">返回error</a></li>    <li><a href="user/user?type=3">返回global result</a></li>    <li><a href="admin/admin">admin,继承user包</a></li></ol></body></html>