struts2的配置文件global-results注意事项

struts.xml

<struts>

    <include file="GoogleSuggest.xml" />
    <include file="login.xml"></include>
    <include file="book.xml"></include>
    <include file="upload.xml"></include>

    <package name="struts2" namespace="/" extends="struts-default">
        <global-results>
            <result name="index">/index.jsp</result>
        </global-results>
       
        <default-action-ref name="index" />
       
        <action name="index" class="org.lzstone.index.action.IndexAction">
       
            <result name="success">/index.jsp</result>
        </action>

    </package>

</struts>

IDE报错,发现将<global-results>放置到<default-action-ref name="index" />之下错误消失,发现default的优先级别还是很高的。

写了一个简单拦截器

public class LoginInterceptor implements Interceptor{
   

    @Override
    public void destroy() {
       
        System.out.println("最终离开Interceptor");
    }

    @Override
    public void init() {
       
        System.out.println("开始进入Interceptor");
       
    }

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
       
        ActionContext act = invocation.getInvocationContext();
        Map session = act.getSession();
        Object object = session.get("user");
        if(null != object){
            return invocation.invoke();
        }
        return "index";
    }

   
   
}

失败返回index,拦截器注册在

<struts>

    <package name="login" namespace="/" extends="struts-default">

        <interceptors>
            <interceptor name="loginInterceptor"
                class="org.lzstone.interceptor.LoginInterceptor" />
        </interceptors>
       
        <action name="login" class="org.lzstone.login.action.LoginAction">
            <result name="success">/success.jsp</result>
            <result name="error">/error.jsp</result>
            <interceptor-ref name="defaultStack" />
            <interceptor-ref name="loginInterceptor" />
        </action>
    </package>

</struts>

测试的时候发现无法发现index,global-results下面我已经有index

后再在login.xml下面加入

<global-results>
            <result name="index">/index.jsp</result>
        </global-results>

运行成功

结果发现struts2中的package限制还是很大的,global-results也只是存在一个包的全局

你可能感兴趣的:(tomcat,jsp,xml,struts,bbs)