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

<!—-配置自定义的ObjectFactory Bean,名称为myFactory,
实现com.opensymphony.xwork2.ObjectFactory 类,
实现类com.smp.ObjectFactory -->
<bean name="myFactory"
type="com.opensymphony.xwork2.ObjectFactory" class="com.smp.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.