您的位置:首页 > 编程语言 > Java开发

struts.xml配置文件中需要注意的地方

2016-03-01 15:57 761 查看
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>


4.
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息