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>
包继承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>