1.
设置全局的返回结果 放在web-inf下面的不能通过redirect形式,如下面
<global-results>
<!-- <result name="login" type="redirectAction">login</result> 错误-->
<result name="login">/WEB-INF/back/login.jsp</result>
<result name="error404">/WEB-INF/back/error/error404.jsp</result>
<result name="error500">/WEB-INF/back/error/error500.jsp</result>
<result name="accessDenied">/WEB-INF/back/error/AccessDenied.jsp</result>
</global-results>
2.
包继承extends问题,一般package里面会配置自定义拦截器,默认的action,异常处理,全局返回结果,因此一般需要继承包,无非就是继承里面的配置文件,或者使用里面的action。但是继承的不得当,那么就会出现各种各校的问题。
如:包名为default 的包 里面定义了登录拦截器。
<package name="default" extends="struts-default" abstract="true" namespace="/">
<!-- 添加拦截器 -->
<interceptors>
<!-- 新建一个栈,把登陆拦截器和默认的栈放进去 -->
<interceptor-stack name="mystack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="loginValidate" />
<interceptor-ref name="securityInterceptor" />
</interceptor-stack>
<!-- 添加登陆拦截器 -->
<interceptor name="loginValidate" class="com.lemon.intecept.AuthrityInterceptor" />
<!-- 权限拦截器 -->
<interceptor name="securityInterceptor" class="com.lemon.intecept.SecurityInterceptor"></interceptor>
</interceptors>
<!-- 修改默认拦截器 -->
<default-interceptor-ref name="mystack" /><span style="font-family: Arial, Helvetica, sans-serif;"></package></span>
但是前台主页如果继承了这个包
<package name="front" extends="default" namespace="/">
<default-interceptor-ref name="defaultStack"></default-interceptor-ref>
<action name="mainPage_*" class="mainPageAction" method="{1}">
<result name="{1}">/main.jsp</result>
</action>
</package>
就会出现问题,必须把默认拦截器改成defaultStack。或者在action里面更改拦截器,否则主页也会被拦截。
3.
访问其它package里面的action
<action name="logining" class="loginAction" method="logining">
<!-- redirectAction 跳转到另外的package中的action -->
<result name="main" type="redirectAction">
<param name="actionName">bannerList</param>
<param name="namespace">/</param>
</result>
<result name="login">/WEB-INF/back/login.jsp</result>
</action>
action中的参数有两种
一种在action下面,这种参数是将值传进action,给变量赋值。
一种是在result下面,这种参数是从action中取值,将值传递到视图页面中。
<action name="appAdding" class="appTypeAction" method="addApping">
<param name="uploadPaht">/upload</param>
<result name="addApping" type="redirectAction">
<param name="actionName">appList</param>
<param name="typeid">${typeid}</param>
</result>
</action>