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

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>




你可能感兴趣的:(Web,struts,struts.xml,action,package)