<action name="auth" >的执行流程是怎样的?
<action name="auth" >
<result>/WEB-INF/page/manager.jsp</result>
<result name="login">/login.jsp</result>
<!-- 引用自定义拦截器栈 -->
<interceptor-ref name="myStack"></interceptor-ref>
</action>
有没有哪位大神解释一下,上面这段代码的执行流程。。。
<action name="auth" >
<result>/WEB-INF/page/manager.jsp</result>
<result name="login">/login.jsp</result>
<!-- 引用自定义拦截器栈 -->
<interceptor-ref name="myStack"></interceptor-ref>
</action>
有没有哪位大神解释一下,上面这段代码的执行流程。。。
2017-07-22
我自己是这样理解的,因为auth没有指定对应的action,所以系统会自动生成一个默认的action,该action默认返回SUCCESS。在视频中,老师第一次通过auth可以直接访问/WEB-INF/page/manager.jsp,就是因为那个默认的action返回了一个SUCCESS,而且,那时候并没有加入我们自定义的拦截器,所以可以直接访问WEB-INF下的文件。后来,我们自定义了的拦截器和拦截器栈,在自定义拦截器中添加了相关的处理代码,并在auth的action中引用了myStack,这时候auth执行的流程发生了变化。当用户直接在URL中输入auth后,这时候它会经过多个拦截器,自然也会被我们自定义的拦截器拦截到,接着执行拦截器中的处理代码,判断用户是否成功登陆过,如果没有成功登陆过,则返回登陆页面;如果已成功登陆过,则通过invoke()方法调用默认的action,因为默认的action默认返回SUCCESS,然后跳转到/WEB-INF/page/manager.jsp页面。整个执行的流程应该就是这样子的。。。
举报