虽然struts2发布没多久,网上关于相关的资料已经非常多了,给大家推荐一个网友的blog,
http://www.blogjava.net/max/ 有兴趣的朋友可以去看看,上面对struts2的讲解基本上比较详细了。在这里提醒各位一个小细节,在开发过程中,我们可能会自定义拦截器(interceptor),用来帮助我们完成相应的功能。其实struts2自身也提供了一些拦截器,例如我们常用的效验(validation)功能就是例用拦截器完成的。但是,当我们自定义拦截器后,发现,struts2自身的拦截器却不起作用了。这里因为我们的拦截器覆盖了struts2自身的拦截器的原因造成的。解决方法是,配置一个拦截器栈,将struts2自身的拦截器配置进去即可。如下:
<interceptors> <!-- 自定义拦截器 --> <interceptor name="noLogin" class="com.mxjava.tycho.servlet.interceptor.NoLoginInterceptor"/> <!-- 拦截器栈 --> <interceptor-stack name="appStack"> <interceptor-ref name="noLogin"/> <!-- struts2自身拦截器 --> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors> <action name="login" class="LoginAction"> <!-- 配置拦截器栈 --> <interceptor-ref name="appStack"/> <result type="velocity">/vms/user/login.vm</result> <result name="login" type="redirect-action">index.htm</result> </action> |