`

Struts2温习——Struts配置文件

阅读更多

Struts配置文件解释:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
	<!-- 请求参数的编码方式 -->
	<constant  name="struts.i18n.encoding" value="UTF-8"/>
	<!-- 指定被struts2处理的请求后缀类型。多个用逗号隔开 -->
	<constant name="struts.action.extension" value="action,do,go,xkk"/>
	<!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开  -->
	<constant name="struts.configuration.xml.reload" value="true"/>
	<!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开  -->
	<constant name="struts.devMode" value="false"/>
	<!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭  -->
	<constant name="struts.serve.static.browserCache" value="false" />
	<!-- 指定由spring负责action对象的创建 
	<constant name="struts.objectFactory" value="spring" />
	-->
	<!-- 是否开启动态方法调用 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
	
	
	<!-- Struts2中使用包来管理一组Action -->
	<!-- package的属性
	   name:  指定包名。要唯一。方便于其它包的继承。
	   extends: 指定要继承的包名。一般是struts-default
	   namespace: 指定命名空间。不指定时,使用默认命名空间,默认命名空间为""
	   abstract: 指定是否为抽象包。抽象包中不能有Action的配置。
	 -->
	<package name="mystruts" extends="struts-default" namespace="/msg">

		<!-- action标签用来注册一个Action.常用属性 
		  name: action的名字,用于匹配请求URI。必须的。不能出现"/"
		  class: 指定Action处理类的全限定名。未指定时,默认是ActionSupport。而ActionSupport的execute() 方法默认处理就是返回一个success字符串。
		  method: 指定要调用的处理方法.不指定时,默认调用execute方法
		  converter: 指定本Action类要使用到的转换器的全限定名
		-->
		<action name="*" class="com.javacrazyer.action.MsgAction" method="{1}">
		    <!-- result配置结果映射
		       name:指定结果的逻辑名。
		       type: 指定跳转的方式。默认是值dispatcher,表示请求分派。常用还有:redirect(重定向), freemarker(使用模板技术解析目标资源)
		     -->
			<result name="success" >/success.jsp</result>
		</action>
	</package>

</struts>

 对于比较复杂的实际项目来说,可能struts.xml中需要写非常多的类似代码,那么为了方便管理,可以将相关的写在别的xml文件中,然后再引入到struts.xml中来,效果也是一样

 

 

 

比如,在src/META-INF/struts2文件下有这么几个xml:struts2-login.xml、struts2-deliver.xml、struts2-order.xml、struts2-member.xml、struts2-system.xml等,这几个xml分别对应为

struts2-login.xml: 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

	<constant name="struts.objectFactory" value="spring" />
	<constant name="struts.objectFactory.spring.autoWire" value="name" />
	<constant name="struts.enable.DynamicMethodInvocation" value="false" />
	<constant name="struts.devMode" value="true" />
	<constant name="struts.configuration.xml.reload" value="true" />
	<constant name="struts.action.extension" value="action"></constant>
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>  
	<constant name="struts.ognl.allowStaticMethodAccess" value="true" /> 
	

        <!-- 引入struts2其他类似配置文件 -->
	<include file="META-INF/struts2/struts2-login.xml" />
	<include file="META-INF/struts2/struts2-member.xml" />
	<include file="META-INF/struts2/struts2-system.xml" />	
	<include file="META-INF/struts2/struts2-order.xml" />
	<include file="META-INF/struts2/struts2-deliver.xml" />

	
	
	<package name="default" namespace="/" extends="struts-default, json-default">
		<!-- 定义拦截器 -->
		<interceptors>
			<interceptor name="appInterceptor"
				class="com.javacrazyer.action.AppInterceptor" />
			<interceptor-stack name="appInterceptorStack">
				<interceptor-ref name="appInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="appInterceptorStack"/>
		
		<default-action-ref name="index" />

		<global-results>
			<result name="login">/index.jsp</result>
			<result name="postRequest">/postRequest.jsp</result>
			<result name="errorPage">/errorPage.jsp</result>
		</global-results>

		<action name="index">
			<result type="redirectAction">
				<param name="actionName">Login_Action</param>
				<param name="namespace">/</param>
			</result>
		</action>
		
	</package>

	<!-- Add packages here -->

</struts>

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics