第2章Struts2核心组件详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于设置了继承,test/hello.action和test2/hello.action都 可以访问相同的那个action
24
当然,在继承的同时可以自己另外再设定action
<package name="ch01" namespace="/test" extends="struts-default"> <action name="hello" class="ch1.HelloWorldAction" method="execute" > <result name="error">/index.jsp</result> <result name="success">/WEB-INF/hello.jsp</result> </action> </package>
<param-name>struts.action.extension</param-name>
<param-value>do </param-value> </init-param>
</filter>
这样会覆盖掉在struts,xml文件中设置好的常量
16
2.1 STRUTS2的STRUTS.XML配置文件
Struts2框架是一个具有高度可扩展性的Java Web框架,其许多核心组件不是以直接编码的方 式写在代码中,而是通过配置文件来管理这些组件。 Struts2可通过配置方式管理其核心组件,从而允许开发者很方便的扩展这些核心组件。当需 要扩展这些组件的时候,把自定义的组件实现类在Struts2中配置即可。
8
Bean配置在struts.xml中的配置格式如下:
<bean name="Bean的名字" class="自定义的组件类"/> <bean/>元素的常用属性有: 1. name:指定Bean实例化对象名字,对于相同类型的多个 Bean,其对应的name属性值不能相同,该项是可选项。
2. class:指定Bean实例的实现类,即对应的类,该项是必选 项。
配置包时必须指定name属性,只有指定了这个属性 后此包才可以被引用 extends属性用来指定该包继承于其他的包,其值必须 是另外一个包的名字(name属性)。通过继承,子 包可以继承父包配置的Action和拦截器。 默认继承包struts-default,可以在Java ResourceLibraries-Web App Libraries-Struts2 Core 下找到 struts-default.xml这个配置文件 实例如下:
2.1.1 struts.xml配置文件结构 2.1.2 Bean配置
2.1.3 常量配置
2.1.4 包含配置 2.1.5 包配置 2.1.6 命名空间配置
2.1.7 Acti来自百度文库n配置
2.1.8 结果配置 2.1.9 拦截器配置
17
2.1.4 包含配置
在企业开发一个项目的时候,都是采用模块开发的 方式,一个项目有多个模块,每个模块由项目组 或者某些程序员来开发,每个程序员都可以使用 自己的配置文件,然后把各个模块集成在一起。 Struts2的配置文件struts.xml提供了<include/>元素 能够把其他程序员开发的配置文件包含过来,但 是被包含的每个配置文件必须和struts.xml格式一 样。
2
2.1 STRUTS2的STRUTS.XML配置文件
2.1.1 struts.xml配置文件结构 2.1.2 Bean配置
2.1.3 常量配置
2.1.4 包含配置 2.1.5 包配置 2.1.6 命名空间配置
2.1.7 Action配置
2.1.8 结果配置 2.1.9 拦截器配置
3
2.1.1 STRUTS.XML配置文件结构
internationalization
13
<constant name="struts.action.extension" value="do,action"/> 这样设置了过后,必须加后缀do或action,不能省略
14
常用常量设置介绍
<constant name="struts.configuration.xml.reload" value="true" /> 设置了该常量后,修改了struts.xml文件中的某些 设置内容后,不用重启tomcat服务器,比如修改 了<result>返回视图 但对某些设置不行,比如修改了常量后还是得重 启tomcat服务器
第2章 STRUTS2核心组件详解
1
第2章 STRUTS2核心组件详解
2.1 Struts2的struts.xml配置文件
2.2 Struts2的核心控制器FilterDispatcher 2.3 Struts2的业务控制器Action 2.4 Struts2的OGNL表达式
2.5 Struts2的标签库
Struts2的核心配置文件是struts.xml,struts.xml具有重要的作用,所有用户请求被Struts2核心 控制器FilterDispatcher拦截,然后通过查询配置文件struts.xml中由哪个Action处理。 Struts2框架有两种配置文件:struts.xml和struts.properties,一般建议使用struts.xml。
23
<package name="ch01" namespace="/test" extends="strutsdefault"> <action name="hello" class="ch1.HelloWorldAction" method="execute" > <result name="error">/index.jsp</result> <result name="success">/WEB-INF/hello.jsp</result> </action> </package> <package name="ch02" namespace="/test2" extends="ch01"> </package>
4
配置STRUTS.XML文件自动弹出提示的操作
1)电脑能上网就行 2)在elipse中打开window-->Preferences-->XML-->XML catalog Key Type 选择 Public ID; Key 则填入xml文档头部 <!DOCTYPE sqlMapConfig PUBLIC 后面的那些. -//Apache Software Foundation//DTD Struts Configuration 2.0//EN Location里设置struts-2.0.dtd文件存储的路径,可以在下载 struts2文件包里找到该文件
20
2.1 STRUTS2的STRUTS.XML配置文件
2.1.1 struts.xml配置文件结构 2.1.2 Bean配置
2.1.3 常量配置
2.1.4 包含配置 2.1.5 包配置 2.1.6 命名空间配置
2.1.7 Action配置
2.1.8 结果配置 2.1.9 拦截器配置
21
2.1.5 包配置
<package name="ch02" namespace="/test2" extends="ch01"> <action name="hello2" class="ch1.Hello2" method="execute" > <result name="ok">/returnok.jsp</result> </action> </package>
5
6
2.1 STRUTS2的STRUTS.XML配置文件
2.1.1 struts.xml配置文件结构 2.1.2 Bean配置
2.1.3 常量配置
2.1.4 包含配置 2.1.5 包配置 2.1.6 命名空间配置
2.1.7 Action配置
2.1.8 结果配置 2.1.9 拦截器配置
7
2.1.2 BEAN配置
15
对应的配置在web.xml文件中的配置代码如下:
<filter> <filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher
</filter-class> <init-param>
在Struts2框架中,通过包配置来管理Action和拦截器 的。在包中可以配置多个Action和拦截器。在 struts.xml配置文件中包的配置是通过<package> 元素来配置的。 <package name="包名" extends="包名 ">…</package>
1. name:指定包名,是其他包继承的时候使用的属性, 必选项。 2. extends:指定要继承的包名,默认继承struts-default 。 3. namespace:定义包的名称空间,可选项。 4. abstract:指定该包是否是一个抽象包,如果该包是抽 象包,包中不能定义action。 22
<constant name="struts.custom.i18n.resources" value="messageResource"/> <constant name=“struts.custom.i18n.encoding” value=“gb2312”/>
不加这个常量设置也能正常处理中文编码信息
3. type:指定Bean实例实现的Struts2规范,该规范通常是通 过某个接口来体现的,因此该属性的值通常是一个Struts2 接口。如果配置Bean作为框架的一个核心组件来使用,就 应该指定该属性,该项是可选项。
4. scope:指定Bean的作用域,该项是可选项。
9
2.1 STRUTS2的STRUTS.XML配置文件
2.1.1 struts.xml配置文件结构 2.1.2 Bean配置
2.1.3 常量配置
2.1.4 包含配置 2.1.5 包配置 2.1.6 命名空间配置
2.1.7 Action配置
2.1.8 结果配置 2.1.9 拦截器配置
10
2.1.3 常量配置
常量可以在不同的文件进行配置,Struts2加载常量的顺序是:struts.xml、struts.properties和 web.xml,如果在这3个文件中对某个常量有重复配置的,后一个文件中配置的常量值会覆盖 前面文件中的同名常量值。
18
包含配置在struts.xml中的配置格式如下: <include file="文件名"/> flie:指定文件名,必选项。 包含配置避免开发复杂项目时配置struts.xml过于庞大,导致读取配置文件速度较慢,同时有 利于模块化开发。
19
【例2-2】实例struts2-portlet.war的配置文件 (struts.xml) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-view.xml"/> <include file="struts-edit.xml"/> <include file="struts-help.xml"/> </struts>
25
2.1 STRUTS2的STRUTS.XML配置文件
2.1.1 struts.xml配置文件结构 2.1.2 Bean配置
2.1.3 常量配置
2.1.4 包含配置 2.1.5 包配置 2.1.6 命名空间配置
一般习惯在struts.xml中配置Struts2的常量。
11
常量配置在struts.xml中格式如下: <constant name="属性名" value="属性值"/> <constant/>元素的常用属性有: name:指定常量(属性)的名字。 value:指定常量的值。
12
例如,在struts.xml文件中,配置国际化资源文件名和字符集的编码方式为“gb2312”,代码如 下: