struts.xml文件详解

本文详细介绍了Struts2框架中的核心配置元素,包括package标签(用于业务控制类的分包管理,设置命名空间、继承关系等),action标签(匹配并映射请求至相应业务类方法),result标签(定义视图处理方式及对应页面),以及constant标签(配置系统常量,如struts.devMode和struts.configuration.xml.reload)。通过这些配置,开发者能更好地管理和控制Struts2应用程序的行为。
摘要由CSDN通过智能技术生成

主要解释四个标签:

  • package
  • action
  • result
  • constant
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
	
<struts>
	<package name = "loginPackage" namespace = "/" extends = "struts-default"> 
		<action name = "login" class = "com.tz.studystruts.sysmanage.action.LoginAction" method = "execute">
			<result>/login_suc.jsp</result>
			<result name = "success" type ="dispatcher">xxx.jsp</result> 
			<result name = "fail" type ="dispatcher">/login_err.jsp</result>
		</action>		
	</package>
</struts>

1.package标签

<package name = "loginPackage" namespace = "/" extends = "struts-default" abstract="true"> 
		......	
</package>

struts2对业务控制类进行分包管理,每一个模块的功能在一个包下,便于维护,package标签主要有四个属性:

  • name:就是包的名称,包名随意起,但要见名知意。

  • namespace:命名空间,区分action的name相同时的一种处理方法,默认为"/“即web应用的根目录,如果配置了该属性,前台在发送请求的时候就要把namespace带上,例如:要匹配的action的name为login,package的namespace为”/sysmanage",则前台发送的请求为"/sysmanage/login.action"。

  • extends:包与包之间的继承关系,例如:如果我们继承了struts2默认的struts-default包那我们就具备了所有struts2的一些特性(参数注入,拦截器,国际化,类型转换,上传,下载)

  • abstract:值为true表示这个包里面的action都是抽象的,只可以被继承,不能被实例化,为false则相反。

2.action标签

<action name = "login" class = "com.tz.studystruts.sysmanage.action.LoginAction" method = "execute">
	......
</action>

action标签用来匹配前台发来的请求,交给相应的业务控制类的相应方法来处理,action标签主要有三个属性:

  • name:前台的请求的名称(如果package还配置了命名空间则请求中的前半部分还要有命名空间)例如:package的namespace属性为"/sysmanage",action的name属性为"login",那么"/sysmange/login.action"请求才能匹配到这个action

  • class:请求所对应的业务控制类

  • method:请求将由业务控制类的method方法来处理,默认为"execute"

3.result标签

result标签主要用来匹配指定视图名称的视图(jsp,velocity,freemarker...)主要有两个属性:
<result name = "success" type ="dispatcher">xxx.jsp</result>
<result name = "fail" type ="dispatcher">/login_err.jsp</result>
  • name:与action返回的字符串值匹配,默认为"success",表示视图代号名

  • type:返回该视图的方式(是转发还是重定向),默认"dispatcher"为转发,redirect为重定向

result标签中包裹的内容为该视图所对应的具体页面。

4.constant标签

主要是用来配置struts2的一些系统常量,例如: 1.国际化的编码 struts.i18n.encoding=UTF-8

2.在系统出错时获得更过的提示信息
struts.devMode=true

3.修改配置文件后不用重启服务器就可以重新加载该配置文件
struts.configuration.xml.reload=true;

<constant name="struts.i18n.encoding" value="UTF8" />
<constant name="struts.devMode" value="true" />
<constant name="struts.configuration.xml.reload" value="true" />

除了在struts2.xml文件中配置系统常量,还可以在src文件夹下新建一个名为struts.properties的配置文件,在里面这样配置:

struts.i18n.encoding=UTF-8
struts.devMode=true
struts.configuration.xml.reload=true;

还可以在struts的核心过滤器里面配置(不过这种用法很少见,了解即可)

<filter>
	<filter-name>struts2</filter-name>
	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	<init-param>
		<param-name>struts.devMode</param-name>
		<param-value>true</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>struts2</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值