Struts配置说明

1.struts入门示例

2.struts.xml配置

2.1 简单配置介绍

<struts>
	<!-- name:包名称,用于区分不用的包 -->
	<!-- extends:继承其他包,struts-default定义了一系列拦截器操作 -->
	<!-- namespace:命名空间,一般/即可,http://localhost:8080/Struts02/命名空间值/studentAction -->
	<package name="student" extends="struts-default" namespace="/">
	
		<!-- 一个包下可以定义多个action -->
		<!-- name:action名称,网址访问时用到 -->
		<!-- class:action类的完整路径 -->
		<!-- method:指定要调用action类的指定方法 -->
		<action name="studentAction" class="com.action.StudentAction" method="test">
			<!-- 一个action可以有多个result,根据name值和action方法返回值进行匹配指定result -->
			<!-- name:action类调用方法返回的结果值 -->
			<!-- result标签中包含的值是跳转到的页面 -->
			<!-- type表示跳转类型。
				dispathcher转发视图页,默认值; 
				redirect重定向视图页
				redirectAction重定向action
				chain转发action
				stream返回结果是流,一般用于ajax和文件下载
			-->
			<result name="success" type="dispathcher">/success.jsp</result>
		</action>
	</package>
</struts>

2.2 动态调用Action多个方法

  • 使用通配符调用指定Action指定方法
<!-- 网址:/Struts02/updateStudent  表示访问StudentAction类的update()方法-->
<!-- 网址:/Struts02/addStudent  表示访问StudentAction类的add()方法-->
<!-- 网址:/Struts02/xxxStudent  表示访问StudentAction类的xxx()方法-->
                
<!-- action的name一般 “*类名” ,表示匹配以Student结尾的action,*一般代表方法名 -->
<!-- method属性表示要执行的方法名,{1}表示*匹配的值 -->
<action name="*Student" class="com.action.StudentAction" method="{1}">
	<!-- 访问StudentAction类的方法后可以匹配值{1}跳转到指定页面 -->
	<!-- 如果update方法返回success,则跳转到update_success.jsp -->
	<!-- 如果add方法返回success,则跳转到add_success.jsp -->
	<!-- 如果xxx方法返回success,则跳转到xxx_success.jsp -->
	<result name="success">/{1}_success.jsp</result>			
</action>
  • 使用路径调用指定Action类的指定方法
<struts>
	<!-- 开启动态方法常量配置 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
	<package name="student" extends="struts-default" namespace="/">
			
		<!-- 网址:/Struts02/student!update  表示访问StudentAction类的update()方法 -->
		<!-- 网址:/Struts02/student!add  表示访问StudentAction类的add()方法-->
        <!-- 网址:/Struts02/student!xxx  表示访问StudentAction类的xxx()方法-->
        <!-- 路径语法:action名!方法名       action名就是name值 -->
        <!-- 这里不再需要设置method值 -->
		<action name="student" class="com.action.StudentAction" >			
			<result name="update_success">/update_success.jsp</result>	
			<result name="add_success">/add_success.jsp</result>	
			<result name="xxx_success">/xxx_success.jsp</result>			
		</action>
		
	</package>
</struts>

2.3 常量配置

  • 配置项参考struts2-core.jar→org.apache.struts2→default.properties
<struts>
     <!-- 把struts的框架的字符集编码改成“UTF-8” -->
    <constant name="struts.i18n.encoding" value="UTF-8" />
    <!-- 把开发模式设为true,页面显示的错误信息更直观 -->
    <constant name="struts.devMode" value="true"/>
    <!-- 修改核心控制器拦截请求路径的后缀名 -->
    <constant name="struts.action.extension" value="action,,"/>
</struts>

2.4 配置默认Action

<package name="student" extends="struts-default" namespace="/">
	<!-- 当在namespace下找不到Action时,会自动找default-action-ref指定的默认Action -->
	<default-action-ref name="defaultAction"></default-action-ref>
	<!-- 这里action的name要与default-action-ref一致,代表默认Action -->
    <action name="defaultAction" class="com.action.DefaultAction" method="notFound">
         <result name="404">/404.jsp</result>
     </action>
     <!-- 此处省略其他Action -->
</package>

2.5 全局结果

<package name="default" namespace="/" extends="struts-default">
	<!-- 此处省略其他action -->
	<!-- 如果其他action中的result的name值与全局结果的name值相同时,优先匹配action的result -->
    <global-results>
        <result name="index" >/welcome.jsp</result>
    </global-results>
</package>

2.6 struts.xml分模块开发

<struts>
	<!-- 主配置文件可以设置一些全局结果和默认Action -->
	<!-- 其他子模块的配置需要用主配置的全局结果、默认Action等时,子模块配置可以继承主模块配置的包名extends="struts-global" -->
	<package name="struts-global" namespace="/" extends="struts-default">
	</package>
	
	<!-- 引入其他子模块的struts配置文件 -->
	<include file="struts_student.xml"></include>
	<include file="struts_grade.xml"></include>
</struts>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章