`
semi_sleep
  • 浏览: 101526 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

20090319 (XWork)

阅读更多

Action
The <action> tag can use any type of object, by default, it will call the execute method, you can override this by specifying a value for the "method" attribute, also, use "actionName!methodName" to force to invoke a public method in action.
If the "class" attribute is not specified, "ActionSupport" will be used.
You can define a default action inside a package which will be executed when no match is found.


ActionProxy,ActionInvocation,ActionContext


Result
<result name="success" type="dispatcher">
    <param name="location">/thank_you.jsp</param>
</result>
The default value for "name" attribute is "success", the default value for "type" is "dispatcher", and if there's no <param> tag to specify "location", the text inside <result> tag will be set to "location" attribute.


Interceptor,InterceptorStack,PreResultListener(should be add to ActionInvocation programatically)


Package, what's the usage of abstract and extend? When marked with "abstract", a package's action definition will not be inherit by it's child package?
Package is used to group actions into namespace (think of it as context path in webapp), so that different actions are invoked by different context path prefix ("/some.do", "/myapp/some.do") and share the same action alias.
A default namespace is empty string "", which will be used as fallback namespace, when not able to find action in a certain package, package with default namespace will be searched.
A root namespace is "/", which means that context path is empty.
In contrast to package namespace, package name is used for action reference.


Use <include file="xwork-default.xml"/> to include configuration file.


ValueStack, evaluate expression from head to tail, both ActionInvocation, ActionContext and Validator refer to ValueStack, ParametersInterceptor gets parameters from ActionContext and put them into ValueStack.


<action name="helloWorld" class="com.opensymphony.xwork2.showcase.helloworld.HelloWorldAction">
  <result type="printToConsole">
    <param name="param">${message}</param>
  </result>
</action>
String result = TextParseUtil.translateVariables(param, invocation.getStack());
How to get action's message property inside result? StrutsResultSupport dose this by default?


For Global level, put a 'xwork-conversion.properties' in classpath, use <class name>=<converter class name>
For Action level, put a 'ActionClassName-conversion.properties' in the same folder as action class, use <property name>=<converter class name>
How dose a converter work?


Validator validate an object and put error message in ValidatorContext.
ValidatorSupport's getFieldValue method pushes given object to ValueStack, and calls ValueStack's findValue method.
Put xml in the same folder of action class, use 'ActionClass-validation.xml' for action-level and use 'ActionClass-actionAlias-validation.xml' for action alias-level.


Set system property using UtilTimerStack.ACTIVATE_PROPERTY or UtilTimerStack.MIN_TIME as key, or manipulate on UtilTimerStack to control profiling.


Use AnnotationWorkflowInterceptor and mark @before, @after or @beforeResult in action class's method.


Use XWork-tiger to enable annotation for validation and conversion.


XWork has added some new features to OGNL, including support for ValueStack, statics properties and the "top" keyword.


TextProvider is used to resolve key to messages in properties file by calling it's getText() method, ActionSupport has implemented this interface.


ObjectFactory
Integrate with Spring, use SpringObjectFactory implementation, now the "class" attribute is set to a bean name in spring configuration file, use "singleton"=false.
Use <bean name="default" type="com.opensymphony.xwork2.ObjectFactory" class="com.mycompany.MyObjectFactory" /> to use custom implementation.


Ognl expression is evaluated against ValueStack, when will values be pushed into ValueStack?

分享到:
评论

相关推荐

    xwork-2.1.5-all.rar_xwork_xwork-2.1.5_xwork-2.1.5.jar_xwork-core

    《XWork 2.1.5:Web框架的核心组件与应用》 XWork是一个Java Web开发中的关键框架,它的核心在于提供了一套强大的动作处理机制和业务逻辑支持。在描述中提到的“xwork-2.1.5-all”是一个包含XWork所有组件的综合包...

    xwork各版本的jar包

    xwork-1.1.1.jar, xwork-1.1.jar, xwork-1.2.1.jar, xwork-1.2.3.jar, xwork-2.0.0.jar, xwork-2.0.1.jar, xwork-2.0.3.jar, xwork-2.0.4.jar, xwork-2.0.5.jar, xwork-2.0.6.jar, xwork-2.0.7.jar, xwork-2.1.0.jar...

    JavaEE源代码 xwork-2.0.4

    JavaEE源代码 xwork-2.0.4JavaEE源代码 xwork-2.0.4JavaEE源代码 xwork-2.0.4JavaEE源代码 xwork-2.0.4JavaEE源代码 xwork-2.0.4JavaEE源代码 xwork-2.0.4JavaEE源代码 xwork-2.0.4JavaEE源代码 xwork-2.0.4JavaEE源...

    xwork官网源码 下载 xwork

    《深入理解XWork框架:官方源码解析》 XWork是一个强大的Action框架,它为Java Web应用程序提供了模型-视图-控制器(MVC)模式的支持。这个框架的主要目标是简化企业级应用的开发,提高代码的可维护性和可扩展性。...

    xwork

    标题 "xwork" 暗示我们关注的是一个与软件框架或库相关的概念,特别是它在Java企业级开发中的应用。XWork是一个历史悠久的开源项目,它是Struts 1框架的核心部分,负责处理Action的执行逻辑。Struts是Apache软件基金...

    xwork源文件及文档

    **XWork源文件及文档详解** XWork是Apache软件基金会Struts2框架的核心组件,它为Struts2提供了动作执行的基础架构。XWork提供了一种强大的、可扩展的、基于事件驱动的模型-视图-控制器(MVC)设计模式实现,支持...

    xwork2.1.2源码与xwork2.2.1源码

    《深入解析xwork 2.x源码:从2.1.2到2.2.1的演进》 xwork作为一个强大的Action框架,是Struts2的核心组成部分,它提供了动作处理、类型转换、数据校验等功能,对于Java Web开发者而言,理解其源码有助于提升对MVC...

    OpenSymphony公司的xwork资源包

    OpenSymphony公司的xWork资源包是一款为Java开发者量身打造的重要工具,主要用于构建企业级Web应用程序。这个资源包的核心是XWork框架,它是Struts2框架的基础,旨在提供一种灵活且可扩展的方式来管理应用程序的行为...

    xwork-2.0.7jar

    《深入解析xwork-2.0.7:框架与源码探索》 xwork-2.0.7是一个重要的Java框架,它在Web应用开发领域扮演着不可或缺的角色。本篇文章将详细探讨xwork的核心功能、设计理念以及如何通过其源码进行深入学习。 一、...

    xwork-2.0.4源码

    《深入剖析xwork-2.0.4源码:揭示框架设计原理与实践》 xwork-2.0.4是ActionServlet的核心组件之一,它为Struts2框架提供了强大的业务逻辑处理能力。这个源码包是理解Struts2工作原理的关键,因为它包含了xwork的...

    xwork-2.1.6 doc文档

    **XWork 2.1.6 文档详解** XWork 是 Struts 2 框架的核心组件之一,它提供了一种强大的动作处理机制,包括事务管理、异常处理和类型转换等功能。XWork 2.1.6 版本的 doc 文档包含了详细的 API 参考、用户指南和...

    XWork源码+docs全

    XWork是Struts2框架的核心组件,它提供了一种基于拦截器(Interceptor)的Action管理机制,为构建可维护、可扩展的企业级Web应用程序提供了强大的支持。本资源包含XWork的完整源码以及相关的文档(docs)和示例项目...

    Xwork完整源代码

    Xwork是一个著名的开源Java框架,主要用于构建企业级Web应用程序。它是Struts2的核心组件,提供了动作执行、依赖注入、拦截器和其他关键功能。这个压缩包包含的“Xwork完整源代码”是对于开发者来说非常宝贵的资源,...

    完整的xwork源代码

    **XWork 源代码详解** XWork 是一个强大的、基于Java的企业级框架,它主要负责业务逻辑的处理,是Struts2的核心组件之一。在深入理解XWork之前,我们首先要明白什么是源代码。源代码是程序员用高级编程语言编写的...

    xwork-2.0.5-src+xwork-2.0.5-jar.zip

    《XWork 2.0.5 深度解析与应用》 XWork是一个开源的、基于Java的企业级框架,其主要目标是提供一个灵活、可扩展的基础,用于构建复杂的企业级应用程序。XWork 2.0.5是该框架的一个重要版本,包含了源代码和对应的...

    xwork-core源码

    《深入解析xwork-core源码:为Struts学习铺路》 在Java Web开发领域,Struts框架无疑占据着重要的地位。而xwork-core作为Struts2的核心组件,它的源码解析对于理解Struts的工作机制至关重要。本文将深入探讨xwork-...

    xwork-2.0.4 源码

    《深入剖析xwork-2.0.4源码:核心机制与设计哲学》 xwork是一个强大的Java框架,主要用于处理Web应用中的业务逻辑和动作控制。xwork-2.0.4版本是其发展过程中的一个重要里程碑,为开发者提供了更稳定、更高效的功能...

    OGNL和XWORK源代码

    OGNL(Object-Graph Navigation Language)和XWork是Struts2的核心组件,它们对于理解Struts2的工作原理至关重要。下面将详细阐述OGNL和XWork的相关知识点。 **OGNL:** OGNL是一种强大的表达式语言,它被广泛用于...

    xwork源码及札包

    **XWork源码及打包资源详解** XWork是Apache Struts框架的核心组件,它提供了一套强大的动作(Action)框架,使得开发者能够构建基于MVC(Model-View-Controller)模式的Web应用。这个资源包包含了XWork项目的源...

    xwork-2.0.7.jar

    《深入理解xwork-2.0.7.jar在Tomcat6.0中的应用与兼容性问题》 在Java Web开发领域,xwork-2.0.7.jar是一个至关重要的组件,它作为Struts2框架的核心部分,负责处理Action的执行、结果的跳转以及数据的绑定等工作。...

Global site tag (gtag.js) - Google Analytics