- 浏览: 242529 次
- 性别:
- 来自: 河北
最新评论
-
z890202:
request不好使 其他的没用到
struts2下velocity做视图如何访问request,session等内置对象 -
zhonghuafy:
请问怎么解决的?
老话题:ClientAbortException:socket write error -
zhongqiujiii:
高级应用--Hibernate的<any>和<set where=''>的实际应用 -
yellow0323:
怎么解决的?
老话题:ClientAbortException:socket write error -
DavyLee:
lixjluck 写道http://lixjluck.itey ...
log4j高级技巧--动态配置日志输出文件的位置
Webwork之Action配置详解
作者:Davy Lee, davy.lee@126.com
Webwork的核心是负责web应用程序中具体逻辑实现的action,本文的目的就是对action的配置、xwok.xml文件的部署进行详细的阐述,本文先列出配置action的注意事项及技巧,最后将给出一个具体的配置实例。
1. 让你的xwork.xml文件包含webwork-default.xml,因为它里面包含了许多默认的配置
代码如下:
<include name=”webwork-default.xml”/>
2.使用隐式默认的result类型有助于减少必需的配置内容,代码如下:
这样我们在default这个package中指定了默认的result-type为velocity,则在此包中配置的名为login这个action中,虽然结果result没有写type=”velocity”,webwork仍然会按照默认的结果类型即velocity进行调度。
3.运用全局的result映射减少重复的配置,你可以为每个package定义任意数量的全局result映射,即<global-results>,代码如下:
这样我们执行login.action如果返回的标识码为error,尽管我们没有单独对login这个action定义result=”error”接点,webwork还是会定向到/error.htm页去。这里要注意两点,第一,局部的映射会覆盖掉全局映射;第二,全局映射要用绝对地址。
4.使用默认的interceptor-ref减少拦截机(栈)的重复配置,可以为每个package定义一个默认的interceptor-ref,代码如下:
这样我们就为这个package 指定了默认的拦截机paramInterceptor,如果此包中的login这个action没有显式指定interceptor,则webwork会按照param拦截机来处理。这里提醒两点:第一,可以把多个interceptor按照顺序组合起来组成interceptor-stack,然后把这个interceptor设置成default-interceptor-ref;第二,如果为某个action如login.action定义了interceptor,则会覆盖掉default-interceptor-ref,webwork会忽略掉default-interceptor-ref,只会按照局部的interceptor来处理。
5.package,抽象package和namespace
(1).抽象package和package很类似,只是里面不能有具体的action的映射,它的作用是提供基础的package的配置,供其他package扩展(或说继承).可以通过设置布尔类型的abstract属性为true来标识一个package为抽象package.(这个我没有试验,大家可以试验一下,呵呵)。
(2).namespace,命名空间,如果某个package 没有指定namespace,则它的默认namespace为“ ”,webwork会把你的url拆分成namespace和action名字两部分,然后webwork就会从xwork.xml中查找namespace/action命名对,如果找不到,就到默认的namespace中去找;大型应用中,应该尽量减少定义在default namespace中的action的数目。
对于webwork的action的配置,我就介绍到这里,有不当之处欢迎大家指正。最后给大家的是一个具体的例子,来自《webwork in action》一书,只为演示,供大家参考。以下例子中有3个package,default package提供基础配置,secure package存放需要认证的action,public package 存放公开的action,详细配置文件如下:
------------------------------------------------------ xwork.xml -----------------------------------------------
------------------------------------------------------ xwork-public .xml ---------------------------------------
----------------------------------------------------xwork-secure.xml----------------------------------------
(全文完,作者:Davy Lee,邮件地址:davy.lee@126.com)
作者:Davy Lee, davy.lee@126.com
Webwork的核心是负责web应用程序中具体逻辑实现的action,本文的目的就是对action的配置、xwok.xml文件的部署进行详细的阐述,本文先列出配置action的注意事项及技巧,最后将给出一个具体的配置实例。
1. 让你的xwork.xml文件包含webwork-default.xml,因为它里面包含了许多默认的配置
代码如下:
<include name=”webwork-default.xml”/>
2.使用隐式默认的result类型有助于减少必需的配置内容,代码如下:
<xwork> <include name=”webwork-default.xml”/> <package name=”default” extends=”webwork-default”> <result-types> <result-type name=”velocity” class=”com.opensymphony.webwork.dispatcher.VelocityResult”default=”true” /> </result-types> <action name=”login” class=”dealLogin” method=”doLogin”> <result name=”success”>userIndex.htm</result> </action> </package> </xwork>
这样我们在default这个package中指定了默认的result-type为velocity,则在此包中配置的名为login这个action中,虽然结果result没有写type=”velocity”,webwork仍然会按照默认的结果类型即velocity进行调度。
3.运用全局的result映射减少重复的配置,你可以为每个package定义任意数量的全局result映射,即<global-results>,代码如下:
<xwork> <include name=”webwork-default.xml”/> <package name=”default” extends=”webwork-default”> <result-types> <result-type name=”velocity” class=”com.opensymphony.webwork.dispatcher.VelocityResult”default=”true” /> </result-types> <global-results> <result name=”error” type=”velocity”>/error.htm</result> </global-results> <action name=”login” class=”dealLogin” method=”doLogin”> <result name=”success”>userIndex.htm</result> </action> </package> </xwork>
这样我们执行login.action如果返回的标识码为error,尽管我们没有单独对login这个action定义result=”error”接点,webwork还是会定向到/error.htm页去。这里要注意两点,第一,局部的映射会覆盖掉全局映射;第二,全局映射要用绝对地址。
4.使用默认的interceptor-ref减少拦截机(栈)的重复配置,可以为每个package定义一个默认的interceptor-ref,代码如下:
<xwork> <include name=”webwork-default.xml”/> <package name=”default” extends=”webwork-default”> <result-types> <result-type name=”velocity” class=”com.opensymphony.webwork.dispatcher.VelocityResult”default=”true” /> </result-types> <global-results> <result name=”error” type=”velocity”>/error.htm</result> </global-results> <interceptors> <interceptor name=”param” class=”…”/> <interceptor name=”timer” class=””/> </interceptors> <default-interceptor-ref name=”param”/> <action name=”login” class=”dealLogin” method=”doLogin”> <result name=”success”>userIndex.htm</result> </action> </package> </xwork>
这样我们就为这个package 指定了默认的拦截机paramInterceptor,如果此包中的login这个action没有显式指定interceptor,则webwork会按照param拦截机来处理。这里提醒两点:第一,可以把多个interceptor按照顺序组合起来组成interceptor-stack,然后把这个interceptor设置成default-interceptor-ref;第二,如果为某个action如login.action定义了interceptor,则会覆盖掉default-interceptor-ref,webwork会忽略掉default-interceptor-ref,只会按照局部的interceptor来处理。
5.package,抽象package和namespace
(1).抽象package和package很类似,只是里面不能有具体的action的映射,它的作用是提供基础的package的配置,供其他package扩展(或说继承).可以通过设置布尔类型的abstract属性为true来标识一个package为抽象package.(这个我没有试验,大家可以试验一下,呵呵)。
(2).namespace,命名空间,如果某个package 没有指定namespace,则它的默认namespace为“ ”,webwork会把你的url拆分成namespace和action名字两部分,然后webwork就会从xwork.xml中查找namespace/action命名对,如果找不到,就到默认的namespace中去找;大型应用中,应该尽量减少定义在default namespace中的action的数目。
对于webwork的action的配置,我就介绍到这里,有不当之处欢迎大家指正。最后给大家的是一个具体的例子,来自《webwork in action》一书,只为演示,供大家参考。以下例子中有3个package,default package提供基础配置,secure package存放需要认证的action,public package 存放公开的action,详细配置文件如下:
------------------------------------------------------ xwork.xml -----------------------------------------------
<xwork> <include name=”webwork-default.xml”/> <package name=”default” extends=”webwork-default”> <interceptors> <interceptor name=”auth” class=”org.hibernate.auction.web.interceptors.AuthenticationInterceptor”/> <interceptor name=”timer” class=””/> </interceptors> <global-results> <result name=”error” type=”velocity”>/error.htm</result> </global-results> </package> </xwork>
------------------------------------------------------ xwork-public .xml ---------------------------------------
<xwork> <package name=”public” extends=”default” namespace=”/public”> <default-interceptor-ref name=” completeStack” /> <action> …………… </action> </package> </xwork>
----------------------------------------------------xwork-secure.xml----------------------------------------
<xwork> <package name=”secure” extends=”default” namespace=”/secure”> <interceptor-stack name=”default”> <interceptor-ref name=”auth”/> <interceptor-ref name=”completeStack”/> </interceptor-stack> <default-interceptor-ref name=”default” /> <!—受保护的action--> <action> …………… </action> </package> </xwork>
(全文完,作者:Davy Lee,邮件地址:davy.lee@126.com)
评论
3 楼 crazyasp 2008-06-18不错,有我想要的:<global-results> <result name=”error” type=”velocity”>/error.htm</result> </global-results>2 楼 DavyLee 2007-07-23这不是原文,里面有我的话,条理结构也是我组织的,当然我的确是参照的《webwork in action》,而且文中也提到了!但要写“摘自某某”,我觉得我的笔墨就玷污了那本书了1 楼 tornyz 2007-07-23应该注明"(摘自<<Webwork in action>>一书)"...发表评论
-
简洁之美-java5线程池源码赏析(下)
2013-04-27 18:02 1118简洁之美-java5线程池源码赏析(下) ... -
简洁之美-java5线程池源码赏析(上)
2013-04-27 17:59 1739简洁之美-java5线程池源码赏 ... -
Eclipse无法调试的问题
2011-05-30 15:41 2813近日,开发中偶遇eclipse无法调试的问题,症 ... -
无线网络导致WebService调用超级慢
2011-04-15 18:27 1422无线网络导致WebS ... -
log4j高级技巧--动态配置日志输出文件的位置
2010-08-11 19:11 5929... -
《j2ee development without ejb》读书笔记<2>框架
2009-03-16 23:19 10911.分布式系统第一法则 ... -
J2ee Development Without ejb读书笔记 <1>
2009-03-07 11:06 1054我们公司用的框架太古老了,是基于jdk1.4的,当然这 ... -
注意:小心使用javascript的parseInt()函数!
2009-03-07 09:26 1337公司使用的是一套 ... -
java中如何直接获得xml中的某个指定的节点
2009-03-02 15:50 13801最近遇到一个问题 ... -
jdk 1.5下运行rmi例子的方法
2009-02-20 17:59 2130最近在jdk1.5下 ... -
eclipse同时使用两个不同版本Jdk引起的问题
2008-12-28 11:13 7933公司的框架是在太老了,是2004年甚至更早的时候开发 ... -
少见多怪--Js中的0.29之怪现象
2008-12-18 16:05 1500少见多怪--Js中的0.2 ... -
java大小的敏感与文件系统的非大小敏感容易引起问题
2008-05-23 11:35 1308java是严格区分大小写的,但常用的文件系统是不区分大小 ... -
某财经大学java老师布置的作业,你会吗?
2008-04-26 17:14 1493这是某财经大学java老师 ... -
JProfiler4.2.2初探-注册码输错会如何?
2008-04-07 17:11 2119早期在webwrok和hibernate及spring ... -
老话题:ClientAbortException:socket write error
2008-03-22 11:58 6159最近也遇到了ClientAbortException ... -
MyEclipse根据Application-context.xml生成类结构图
2007-11-10 15:41 3467对于一个已存在的项目,我们有时想看到其类与类之间的关系,利用M ... -
Lucene进阶:and 和or的条件查询
2007-09-24 10:39 4759在用Lucene实现全站搜索的过程中,很可能会遇到这 ... -
Lucene(Lucence)建立索引(字段)
2007-09-20 11:09 4883Lucene,这是官方称谓,也有许多人叫它Lucenc ... -
实现页面跳转到前一页!
2007-09-08 10:10 1872Web开发中经常遇到这样的需求,在某个页面a.htm ...
相关推荐
1. **WebWork之Action配置详解**: WebWork中的Action是处理用户请求的核心组件。Action配置是定义Action行为的重要环节,包括指定Action类、处理方法、结果页面等。通过配置文件,你可以定义Action的输入、输出、...
总结来说,WebWork 配置涉及Action的创建、ActionContext的理解和使用、ServletDispatcher的调度机制,以及Action的测试和Result Type的设置。熟练掌握这些知识点,能够帮助开发者高效地构建和维护基于WebWork的Java...
根据提供的文件信息,本书《WebWork in Action》主要聚焦于Java WebWork框架的应用与实践,是一本详尽介绍WebWork框架各个方面的书籍。下面将基于标题、描述、标签及部分内容来提取并归纳出相关的IT知识点。 ### ...
- 在`invoke`过程中,ActionInvocation会根据Action配置的拦截器链(Interceptor Chain)执行拦截器,这些拦截器可以用来做权限检查、日志记录等预处理或后处理工作。 - 最后,Action的执行结果会被转换成对应的...
### WebWork2配置详解 #### 一、简介 WebWork2是基于Java的企业级Web应用程序框架,它提供了灵活且强大的工具来构建复杂的应用程序。本文档旨在为初学者提供一个全面深入的理解,涵盖WebWork2的基本配置过程以及...
3. **Action执行**:根据请求的URL路径,`ServletDispatcher`会查找相应的Action配置,并创建对应的Action实例。 4. **业务逻辑处理**:Action类通常包含了业务逻辑的处理方法,比如数据库操作、数据处理等。 5. **...
- xwork.xml是WebWork的核心配置文件,用于定义Action、拦截器、结果类型等配置信息。 - 文件中包含了各种标签元素,用于配置不同的组件。 #### 五、实战案例 - **G-Roller-WW**: - 本节介绍如何将G-Roller与...
### WebWork 开发指南知识点详解 #### 一、WebWork框架概述 - **WebWork**:WebWork 是一款用于构建企业级 Java Web 应用程序的框架,它以模型-视图-控制器(MVC)架构为基础,为开发者提供了一种更加灵活的方式来...
- **工作原理**:当接收到HTTP请求时,ServletDispatcher会解析请求路径,找到对应的Action配置,并创建Action实例。然后执行Action的`execute()`方法,根据返回的结果选择合适的视图进行渲染。 #### 七、Action的...
#### XWork配置详解 Xwork的配置主要通过xwork.xml文件进行,该文件包含了框架运行所需的各项配置信息,如Action定义、拦截器配置、验证规则等。深入理解xwork.xml的结构和元素,对于合理配置和优化WebWork应用具有...
**WebWork技术详解** WebWork是一款基于Java的轻量级MVC(Model-View-Controller)框架,它在早期Web应用开发中起到了重要的作用。WebWork的核心设计理念是提供灵活、可扩展的控制器层,帮助开发者将业务逻辑与表现...
### WebWork Web开发框架知识点详解 #### 一、WebWork框架概述 - **定义与特点**:WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)架构的J2EE Web开发框架。它专注于组件化设计和代码重用,...
3. **配置管理器**:通过XML配置文件或注解来定义Action的映射、拦截器链以及结果视图。 4. **Interceptor(拦截器)**:类似于AOP(面向切面编程),提供预处理和后处理功能,例如日志、权限验证、事务控制等。 5...
4. **配置文件详解**:学习如何配置WebWork框架,包括如何设置Action的映射、拦截器链等。 5. **高级特性探索**:进一步学习WebWork框架的高级特性,如国际化、异常处理、类型转换和验证等。 6. **参与社区**:加入...
#### 二、核心配置详解 ##### 1. WebWork配置 - **webwork.properties**:该文件用于指定WebWork的运行配置。其中,`webwork.objectFactory=spring` 这一行表示WebWork将使用Spring作为对象工厂,即所有的Action...
### WebWork2 教程详解 #### 一、引言 WebWork2 是一款轻量级的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发流程。通过本文档的学习,您将能够掌握 WebWork2 ...
### Webwork教程知识点详解 #### 一、WebWork框架简介 **WebWork**是一个开源的Java Web应用程序框架,它的设计理念是简化Web应用的开发过程,提高开发效率。随着时间的发展,WebWork逐渐演变成了**Struts2**框架...
#### 四、配置详解 **XWork配置**是WebWork的核心配置文件,定义了Action的映射关系及其他配置项。 - **xwork.xml文件的标签元素** 包括Action映射、拦截器配置、结果类型定义等。 #### 五、实战案例 ##### ...
### WebWork搭建步骤详解 #### 一、WebWork简介与下载 在开始介绍WebWork的搭建之前,我们先简要了解一下WebWork框架。WebWork是一个开源的Java Web应用框架,它提供了一种灵活的方式来处理HTTP请求,并将这些请求...