struts.xml的配置

it2022-05-22  49

1:bean,定义类。

2:constant:struts中的常量定义。

文件目录

/org/apache/struts2/default.properties

default.properties定义了struts2中所有的常量。struts并不会去读取。

struts.i18n.encoding=UTF-8 //设置请求的编码 struts.enable.DynamicMethodInvocation = true //是否支持动态方法的调用 struts.configuration.xml.reload = true //是否支持XML的自动加载 struts.devMode = false //开发模式 struts.ui.theme=xhtml //UI模板的设置 struts.ognl.allowStaticMethodAccess=false //是否允许在ONGL表达式中调用静态方法 struts.action.extension=action,, //STruts请求的扩展名。

系统可以覆盖常量。struts读取常量的顺序:后面的会覆盖前面的配置。

 

A:struts-default.xml:不需要配置

B:struts.xml

<constant name="struts.i18n.encoding" value="GBK" />

C:struts.properties(这个文件需手工建立,也是放在src目录下,一般用于WebWork工程)

struts.i18n.encoding=UTF-8

D:web.xml

<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> <init-param> <param-name>struts.i18n.encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter>

include部分: struts中多模块的设置,模块化文件。

<!-- 引入其他配置文件 <include file="struts_user.xml"></include> -->

 

公用的Action放在struts.xml中,模板的配置放到模板的配置文件中。

 

package 包

name="default" 包名,随便取,不能重复。

namespace="/" 命名空间。

extends="struts-default" 包之间的继承。就可以父包配置的选项 默认所有的package都继承struts-default.xml

abstract="true|false" 是否抽象包。抽象包中不能定义action。

 

 

Package底下的配置:

<action name="" action的名称 class="" action的类路径 method="" 执行action中哪一个方法的名称。 <action name="firstAction" class="com.action.FirstAction" method="delete"></action> 访问firstAction时,执行不是FirstAction中的execute方法,而是FirstActionon类中的Delete方法。 如果没有配置method,就是访问execute方法。 <result name="succ" type="dispatcher"> <param name=""></param> </result>

 

name:result的名称 type:result的类型, chain: 请求转发到Action dispatcher: 请求转发到JSP面 redirect: 重定向到JSP页面 redirectAction: 重定向到Action stream: 流方式,用于下载

 

param: result-type对应的类中成员变量的名称。

Action private String username;

//成员变量必须生成SET/GET方法。

<param name=""></param> //Action中成员变量的值。 <result name="firstPage" type="redirectAction"> <param name="namespace">/space_test1</param> <param name="actionName">test1Action</param> </result>

interceptors: 配置拦截器和拦截器栈。

default-interceptor-ref: 配置默认栈。

当配置文件中配置了一个栈时,所以的action要使用栈的话,必须在action中加入调用 栈的代码。

<action = > <interceptor-ref name=""></interceptor-ref> </action>

 

比较麻烦,可以配置默认的栈,这样在package底下所有的action都用使用这个默认栈。

default-action-ref: 配置默认的action。 当链接到一个命名空间时,没有指定action的路径,那么就会执行默认的action。

http://localhost:8080/Struts2_Project_1/test1/

<package name="test" namespace="/test1" extends="struts-default"> <default-action-ref name="index" /> <action name="index"> <result>/main.jsp</result> </action> <action name="testNameSpace" class="com.action.TestNameSpaceAction"> </action> </package>

//*********************** global-results与results的区别:

global-result:是Package下面所有的action都可以调用global中定义的result.

result:是action中私用的。

其它的package想要调用另一个package中定义的global-result时,直接将包做

继承关系即可。

转载于:https://www.cnblogs.com/Arvin-9/p/4654062.html


最新回复(0)