浏览 671 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-09-26
第三章: 配置WebWork
一. 配置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内容改写之前装载的配置设定。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


