三、Struts2配置文件的介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mChenys/article/details/84839562

struts2的配置文件

package标签

如果要配置<Action>的标签,那么必须要先配置<package>标签,代表的包的概念,包含的属性有:

  • name:包的名称,要求是唯一的,管理action配置,随便起名字。
  • extends:继承,可以继承其他的包,只要继承了,那么该包就包含了其他包的功能,一般都是继承struts-default。
  • namespace:名称空间,一般与<action>标签中的name属性共同决定访问路径(通俗话:怎么来访问action),常见的配置有namespace="/" 表示根名称空间,或者namespace="/aaa"表示带有名称的名称空间,匹配url时先要匹配/aaa,然后再去匹配action标签的name属性。
  • abstract:抽象的,这个属性基本很少使用,值如果是true,那么编写的包是被继承的。

action标签

package标签的子标签,代表配置action类即响应请求的类,包含的属性如下:

  • name:和<package>标签的namespace属性一起来决定访问路径的。
  • class:配置Action类的全路径(如不配置,默认值是Struts2框架提供的ActionSupport类)。
  • method:Action类中执行的方法,如果不指定,默认值是execute。

result标签

action标签的字标签,处理响应类的指定方法执行完后的结果以及跳转方式,包含如下属性:

  • name:结果页面逻辑视图名称,和响应类中指定方法的返回结果保持一致。
  • type:结果类型(默认值是转发,也可以设置其他的值)。

Struts2的常量配置

通常如果想要覆盖系统默认的常量值的话,可以在自定义的struts.xml中设设置,这样就可以覆盖系统的常量值了,常用的常量有如下:

  • struts.i18n.encoding=UTF-8:指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 。
  • struts.action.extension=action,:该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开,注意观察这里是有两个逗号,说明除了匹配action后缀外,还可以匹配空白字符串即没有后缀名也可以匹配。
  • struts.serve.static.browserCache=true :设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭。
  • struts.configuration.xml.reload=false:当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用) 。
  • struts.devMode = false: 开发模式下使用,这样可以打印出更详细的错误信息。

那么如何编写呢?
类似这样<constant name="key" value="value"></constant>,只需要替换key和value就可以了.key是固定的写法,参考默认配置文件即可。

分包管理Struts2配置文件

在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。
为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。
将其他配置文件放在各个响应类所在的包下,命名为struts_xx.xml,然后在src目录下的struts.xml文件中进行引入。
可以在<struts>标签内,使用<include>标签来引入其他的struts_xx.xml的配置文件。例如:

<?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>
	
	<!--注意要写全路径名-->
	<include file="blog/csdn/net/mchenys/web/struts_customer.xml"/>
	<include file="blog/csdn/net/mchenys/web/struts_user.xml"/>
	
</struts>

这种方式,通常也比较少用,因为Struts2还支持通配符的访问和动态方法访问的方式,后面会介绍这2种方式的做法。

猜你喜欢

转载自blog.csdn.net/mChenys/article/details/84839562