2007-09-26
《WebWork in action》第三章
第三章: 配置WebWork
一. 配置Action
1. 基本配置
. action名
. action类
. result类型
name="helloWorld"
class="ch2.example1.HelloWorld">
login.jsp
/index.jsp
以上例子中,如果helloWorld action返回的result code是SUCCESS,那么用户将会重定向到/index.jsp。如果返回的
result code是INPUT,将会显示login.jsp页面。
2. 配置别名重用action
将多个名字映射到相同的action类;这个名字称为别名。这时多个请求访问相同的execute()方法;
在别名基础上,可增加一个可选的method属性,指定webwork该调用哪个方法。所指定的方法格式与execute()方法一样。
这时多个请求访问不同的方法;
cal.jsp
cal.jsp
注:WebWork通过xwork.xml映射至方法有两种途径:
. 通过查找与method属性的值一致的方法;
. 通过查找doMethod()形式的方法;
WebWork先找method属性一致方法,如找不到,再找doMethod()形式方法;
3. 不配置别名重用action
通过name!method.action形式请求访问action,其中name为action的映射名字。这时不需额外配置。
注:优先推荐,但要预防不怀好意的用户通过该途径使用你不想让用户调用的方法;
4. 通过参数自定义action
可通过在配置文件中设置参数传递给action. 从而达到非常灵活设置的目的。
a. 在xwork.xml文件的action配置位置处配置以下信息(配置参数名称为url):
paramTest.jsp
http://www.javaw.cn
b. action
在action中定义与参数名同名的属性以及对应的setter/getter方法,webwork在action执行时会自动调用
setter方法为属性赋在xwork.xml文件中所配置的参数值;
c. jsp
通过标记: 获取参数值;
二. 配置Result
1. 基本配置:
paramTest.jsp
result由两个部分组成:
. result映射: 通过name属性指定result的逻辑名,name的属性值与action中execute()方法中的返回值相同;
result标记本体内容指定跳转的路径,既可以为绝对路径(/代表包含namespace内容在内的web应用根路径),
也可以为相对路径;
. result类型: 通过type属性指定,默认值为dispatcher,可以指定为redirect。如指定为redirect,则产生
一个新的请求跳转至目的地址;
2. 使用全局result映射减少重复配置
设定全局result,服务于多个action配置,减少重复配置;
paramTest.jsp
三. 配置interceptor
interceptor(拦截器)是一种很特殊的对象,它围绕着action及result的执行过程。它可以在action之前或之后及result
之后工作,实现了某些逻辑的松耦合,譬如安全、日志和校验。
1. 定义interceptor
. 定义
注:一般不需自行定义,在webwork-default.xml文件中已定义了很多interceptor。webwork-default.xml位于
webwork-2.2.4.jar文件根目录中;
. 使用
这样设置后,当paramTest.action被调用的时侯,timer和logger两个interceptor也会相应地被调用。
2. 将多个interceptor组合为栈
将多个interceptor组合到一起,而不需要为每一个action声明数量众多的。一个interceptor栈包含
一组interceptor,并且按照它们本身在栈中定义的顺序来执行。
. 定义
. 使用
3. 使用默认interceptor-ref减少重复配置
通过使用default-interceptor-ref元素,package中每一个action都不再需要定义任何interceptor。
注:如为一个action定义了interceptor,那么这个action将不再使用默认的interceptor。
四. 高级配置
1. package
WebWork中的package和Java中的package在很多方面非常相似,它将多个action组织成一个模块。简化维护工作,提高
重用性。一个package中包含了所有将用到的action, result, interceptor的定义。
2. 扩展package
WebWork中的package可以扩展另外的package:为其extends属性指定一个用逗号分隔的package列表,从而扩展该列表的
package。当一个WebWork package扩展另外一个package时,将会从被包含的package中复制所有的定义,并在自己本身
已有的定义基础上增加这些配置。这让你可以将配置的公共部分集中起来,减少package中重复定义的内容。
...
3. 映射namespace
WebWork通过action名字和所属的namespace标识action。如果package没定义namespace属性,将使用默认的namespace: "/"。
当WebWork接收到一个请求的时侯,WebWork会将请求的URL分为namespace和action名字两个部分,然后从xwork.xml中查找
namespace/action内容,如果没有找到,则从默认的namespace中查找action。
http://www.javaw.cn
paramTest.jsp
以上访问paramTest,通过URL: http://localhost:8080/enterinfo/paramTest.action,其中:
. /enterinfo为namespace的名字;
. paramTest为action的名字;
多个package可以使用相同的namespace。
4. 使用include标签实现组件化
为了支持将应用程序划分为更容易管理的模块,WebWork提供了一种包含机制,可以将xwork.xml划分为多个文件,而每一个
子文件又是与一个模块相联系的。可以通过使用标签指定文件名的方法将子文件包含到xwork.xml中,而WebWork
就会在应用程序的classpath中查找指定的子文件。
...
五. 其它配置
1. web.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
webwork
com.opensymphony.webwork.dispatcher.ServletDispatcher
webwork
*.action
index.jsp
webwork
/WEB-INF/lib/webwork-2.2.4.jar
2. webwork.properties
xwork.xml定义了action映射,并且将interceptor和result应用到这些action上。而webwork.properties用来定义
application范围的设置,以及能够改变框架功能的配置参数。
WebWork首先会装载位于WebWork JAR文件中的default.properties,然后再装载webwork.properties,并且根据
webwork.properties内容改写之前装载的配置设定。
一. 配置Action
1. 基本配置
. action名
. action类
. result类型
name="helloWorld"
class="ch2.example1.HelloWorld">
以上例子中,如果helloWorld action返回的result code是SUCCESS,那么用户将会重定向到/index.jsp。如果返回的
result code是INPUT,将会显示login.jsp页面。
2. 配置别名重用action
将多个名字映射到相同的action类;这个名字称为别名。这时多个请求访问相同的execute()方法;
在别名基础上,可增加一个可选的method属性,指定webwork该调用哪个方法。所指定的方法格式与execute()方法一样。
这时多个请求访问不同的方法;
注:WebWork通过xwork.xml映射至方法有两种途径:
. 通过查找与method属性的值一致的方法;
. 通过查找doMethod()形式的方法;
WebWork先找method属性一致方法,如找不到,再找doMethod()形式方法;
3. 不配置别名重用action
通过name!method.action形式请求访问action,其中name为action的映射名字。这时不需额外配置。
注:优先推荐,但要预防不怀好意的用户通过该途径使用你不想让用户调用的方法;
4. 通过参数自定义action
可通过在配置文件中设置参数传递给action. 从而达到非常灵活设置的目的。
a. 在xwork.xml文件的action配置位置处配置以下信息(配置参数名称为url):
http://www.javaw.cn
b. action
在action中定义与参数名同名的属性以及对应的setter/getter方法,webwork在action执行时会自动调用
setter方法为属性赋在xwork.xml文件中所配置的参数值;
c. jsp
通过标记:
二. 配置Result
1. 基本配置:
result由两个部分组成:
. result映射: 通过name属性指定result的逻辑名,name的属性值与action中execute()方法中的返回值相同;
result标记本体内容指定跳转的路径,既可以为绝对路径(/代表包含namespace内容在内的web应用根路径),
也可以为相对路径;
. result类型: 通过type属性指定,默认值为dispatcher,可以指定为redirect。如指定为redirect,则产生
一个新的请求跳转至目的地址;
2. 使用全局result映射减少重复配置
设定全局result,服务于多个action配置,减少重复配置;
三. 配置interceptor
interceptor(拦截器)是一种很特殊的对象,它围绕着action及result的执行过程。它可以在action之前或之后及result
之后工作,实现了某些逻辑的松耦合,譬如安全、日志和校验。
1. 定义interceptor
. 定义
注:一般不需自行定义,在webwork-default.xml文件中已定义了很多interceptor。webwork-default.xml位于
webwork-2.2.4.jar文件根目录中;
. 使用
这样设置后,当paramTest.action被调用的时侯,timer和logger两个interceptor也会相应地被调用。
2. 将多个interceptor组合为栈
将多个interceptor组合到一起,而不需要为每一个action声明数量众多的
一组interceptor,并且按照它们本身在栈中定义的顺序来执行。
. 定义
. 使用
3. 使用默认interceptor-ref减少重复配置
通过使用default-interceptor-ref元素,package中每一个action都不再需要定义任何interceptor。
注:如为一个action定义了interceptor,那么这个action将不再使用默认的interceptor。
四. 高级配置
1. package
WebWork中的package和Java中的package在很多方面非常相似,它将多个action组织成一个模块。简化维护工作,提高
重用性。一个package中包含了所有将用到的action, result, interceptor的定义。
2. 扩展package
WebWork中的package可以扩展另外的package:为其extends属性指定一个用逗号分隔的package列表,从而扩展该列表的
package。当一个WebWork package扩展另外一个package时,将会从被包含的package中复制所有的定义,并在自己本身
已有的定义基础上增加这些配置。这让你可以将配置的公共部分集中起来,减少package中重复定义的内容。
...
3. 映射namespace
WebWork通过action名字和所属的namespace标识action。如果package没定义namespace属性,将使用默认的namespace: "/"。
当WebWork接收到一个请求的时侯,WebWork会将请求的URL分为namespace和action名字两个部分,然后从xwork.xml中查找
namespace/action内容,如果没有找到,则从默认的namespace中查找action。
http://www.javaw.cn
以上访问paramTest,通过URL: http://localhost:8080/enterinfo/paramTest.action,其中:
. /enterinfo为namespace的名字;
. paramTest为action的名字;
多个package可以使用相同的namespace。
4. 使用include标签实现组件化
为了支持将应用程序划分为更容易管理的模块,WebWork提供了一种包含机制,可以将xwork.xml划分为多个文件,而每一个
子文件又是与一个模块相联系的。可以通过使用
就会在应用程序的classpath中查找指定的子文件。
...
五. 其它配置
1. web.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
com.opensymphony.webwork.dispatcher.ServletDispatcher
/WEB-INF/lib/webwork-2.2.4.jar
2. webwork.properties
xwork.xml定义了action映射,并且将interceptor和result应用到这些action上。而webwork.properties用来定义
application范围的设置,以及能够改变框架功能的配置参数。
WebWork首先会装载位于WebWork JAR文件中的default.properties,然后再装载webwork.properties,并且根据
webwork.properties内容改写之前装载的配置设定。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 4132 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
me
共 2 张
共 2 张
最近加入圈子
最新评论
-
在Eclipse中创建基于Axis ...
总是报错:invocationTargetException
-- by andy54321 -
《WebWork in action》第 ...
顶邓老师 顶邓老师
-- by wslxg -
在Eclipse中创建基于Axis ...
既然是新手贴,能否将图片传上来?
-- by flyingbob -
使用Axis2 Code Generator ...
[url][list=1] [*] [*][*]引用 [*] [/url] [ ...
-- by zhuliangsoft -
在Eclipse中创建基于Axis ...
不知道 services.xml 是怎么得到的
-- by snowme103






评论排行榜