1,struts.properties
#上传文件的工作目录与文件的最大尺寸
struts.multipart.saveDir=
struts.multipart.maxSize=2097152
#struts2的默认后缀名
struts.action.extension=action
#是否是开发模式
struts.devMode=false
#默认的主题,模板所在文件夹。模板文件后缀
struts.ui.theme=xhtml
struts.ui.templateDir=template
struts.ui.templateSuffix=ftl
#struts2的默认配置文件
struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml
2struts.xml
struts.xml是struts2的核心配置文件,里面配置Action,JSP,Exception,Intercepter等。另外,struts.properties里的配置也可以配置在struts.xml。
<constant name="struts.devMode" value="true"></constant>
<include file="struts-login.xml"></include>
<bean class="" name=""></bean>
<package name="" extends="struts-default" namespace="">
配置拦截器
<interceptors>
<interceptor name="loginInterceptor"
class=""></interceptor>
</interceptors>
配置全局的result
<global-results>
<result name="login">/login.jsp</result>
</global-results>
配置全局的异常
<global-exception-mappings>
<exception-mapping result="exception.jsp" exception="java.lang.Exception"></exception-mapping>
</global-exception-mapping>
<action name="loginPerson" class="">
<result name="success">/welcome.jsp</result>
</action>
</package>
constant配置struts2的属性,与struts.properties作用是一样的。<include>配置多个struts2文件,这些文件时独立的struts2配置文件,作用。格式与struts.xml一样,要有<!DOCTYPE>,也要有<struts>根元素。<bean>配置常用的poJo类。<package>里面配置<action>等。
package类似于对象,具有可继承的特性。package的name属性指定package的名称,用于继承时引用父package里配置的所有资源,包括拦截器interceptor,action,forward等,也可以重新定义一些资源。
命名空间,package还可以配置namespace属性。如果配置了namespace="namespace1"那么访问时需要加上namespace1
Struts2的大部分核心组件不是以硬编码的形式写在代码中,而是通过自身的IOC容器来管理的。
struts2可以配置的形式来管理核心组件,所以开发者可以很容易的扩展框架的核心组件。当开发者需要扩展或者替换Struts2的核心组件时,只需要提供自己的组件实现了,并部署在struts的IOc容器中即可。
bean在struts.xml文件中定义Bean时,通常有如下两个作用。
1.创建该Bean的实例,将该实例作为struts2框架的核心组件使用。(需要告诉sturts2容器实例的作用--即实现了struts2的某个接口,这个接口定义了该组件必须遵循的规范)。
例如下面我们使用一个自定义的ObjectFactory对象来替换Struts2的内置ObjectFactory
|
2,bean包含的静态方法需要注入一个值。
bean元素在struts.xml文件中定义Bean,bean元素有如下几个属性
class:必填属性指定bean实例的实现类
type:可选属性,它指定Bean实例实现的struts2的规范,该规范通常是通过某个接口来实现,因此该属性的值通常是一个struts2接口。如果需要将bean实例作为struts2组件来使用,则应该指定该属性的值 。
name:可选属性,该属性指定Bean实例的名字,对于有相同type类型的多个Bean,他们的name属性不能相同。
scope:可选属性,该属性指定Bean实例的作用域,属性值只能是default,singleton.request.session或者thread之一。
static:可选属性,该属性指定该Bean是否是一个可选的Bean.