??xml version="1.0" encoding="utf-8" standalone="yes"?>91高清在线,国产一区av在线,久久精品九色http://www.aygfsteel.com/wyxdeniro/category/27589.html舍我其谁zh-cnMon, 26 Nov 2007 14:47:27 GMTMon, 26 Nov 2007 14:47:27 GMT60webwork学习W记(?-----xwork详述 http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163289.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:47:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163289.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163289.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163289.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163289.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163289.htmlxwork配置文g必需攑֜c\?classPass)的根目录下,必需遵@DTD规范 
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
xwork.xml文g的标{օ?br /> 1、xwork:xwork配置文g的内容,都是定义?lt;xwork>标签中,它的直接子标{有<package>?lt;include>
2、Package:我们的Action,Interceptor,Result-type都是在此标签中定义,<package>标签有个必需的属?name",它用来标识唯一的一个package.属?extends"是可选的Q它用来l承前面定义的一个或一个以上Package配置信息?br /> 3、Result-type:用来定义输出l果cd的Class:<result-type name="dispatcher" class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult" default="true"/>,default="true"表示如果在Action的result中不指定result-type,׃用这个默认的result-type.
4、Interceptors:它是一个简单的<interceptors></interceptors>标签Q我们的interceptor和interceptor-stack都在q里定义?br /> 5、Interceptor:用来定义我们的拦截器Q?br /> <interceptor name="timer" class="com.opensymphony.xwork.interceptor.TimerInterceptor"/>,在Action中,可以通过<interceptor-ref/>来直接引用前面定义的拦截器?br /> 6、Interceptor-satack:用来上面定义的Interceptorl织成堆栈的形式Q这h们就可以创徏一l标准的interceptor,让他按照序执行Q在我们的action中直接引用这个interceptor堆栈可以了?br /> <interceptor-stack name="validationWorkflowStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
</interceptor-stack>

7、Global-results:它允许我们定义全局的输出结?global result)?br /> <global-results>
<result name="login" type="dispacher">
<param name="location">/login.jsp</param>
</result>
<result name="error" type="dispatcher">
<param name="location">/error.jsp</param>
</result>
</global-results>



]]>
webwork学习W记(?-----验证框架的?http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163288.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:46:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163288.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163288.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163288.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163288.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163288.html1、注册我们的验证cdQ?br /> webwork验证是通过验证cd来实现的Q验证类型是通过c?该类必需实现com.opensymphony.xwork.validator.Validator接口Q或者承ValidatorSoupport,FieldValidatorSupport{?来实现的Q在使用验证cd之前Q必需要在validatorFactory中注册,一般用配|文件validators.xmlq行注册Q要求把文gvalidators.xml攑ֈClassPath的根目录中?br /> <validators>
<validator name="required" class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>
<validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/
<validator name="int" class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator"/>
<validator name="date" class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator"/>
<validator name="expression" class="com.opensymphony.xwork.validator.validators.ExpressionValidator"/>
<validator name="fieldexpression" class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator"/>
<validator name="email" class="com.opensymphony.xwork.validator.validators.EmailValidator"/>
<validator name="url" class="com.opensymphony.xwork.validator.validators.URLValidator"/>
<validator name="visitor" class="com.opensymphony.xwork.validator.validators.VisitorFieldValidator"/>
<validator name="conversion" class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>
</validators>

2、开启Action的验证功能:
在xwork.xml中加?lt;interceptor class="com.opensymphony.xwork.validator.ValidationInterceptor"/>
3、实现我们的验证文g(也就是规?Q?br /> 我们的验证文件必需以ActionName-validation.xml格式命名Q他必需被放|到与这个Action相同的包中?br /> 格式Q?br /> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"   "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
    <field name="count">
        <field-validator type="required">
            <message>You must enter a value for count.</message>
        </field-validator>
        <field-validator type="int">
            <param name="min">0</param>
            <param name="max">5</param>
            <message>
    count must be between ${min} and ${max}, current value is ${count}.
     </message>
        </field-validator>
    </field>
</validators>
(1)?lt;field>标签代表一个字D,属?name"和页面输入框?name"属性必需完全一致?br /> (2)?lt;field-validator>标签定义我们的验证规则,type属性的值就是我们前面定义的验证cd?br /> (3)、验证文件中Q字D|据是通过表达式语a从我们的值堆栈中取得Q一般是Action对象?br /> (4)、不验证是否通过Q我们的Action都会执行Q但是如果验证没有通过Q他不会调用Action的execute()Ҏ?/span>
4、验证Action的写法:
import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.xwork.ValidationAware;
public class SimpleAction extends ActionSupport implements ValidationAware {
    private int count;
    public void setCount(int count) {
        this.count = count;
    }
    public int getCount() {
        return count;
    }
    public String execute(){
  //在这里调用用h册的业务逻辑Q比如:注册信息存储到数据?br />   return SUCCESS;
 }
}
5、xwork.xml中需要注意的地方Q?br /> <action name="validation" class="com.wyq.login.action.SimpleAction">
   <result name="success" type="dispatcher">
    <param name="location">/login/simple_result.jsp</param>
   </result>
   <result name="error" type="dispatcher">
    <param name="location">/login/simple.jsp</param>
   </result>
q里是最重要的,不符合条件的都从下面输出Q这里也是必需声明?br />    <!-- If you don't override execute(), you must do this: -->
   <result name="input" type="dispatcher">
    <param name="location">/login/simple.jsp</param>
   </result>
   <interceptor-ref name="validator" />
   <interceptor-ref name="debugStack" />
   <interceptor-ref name="defaultStack" />
  </action>


]]>
webwork学习W记(? http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163285.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:45:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163285.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163285.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163285.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163285.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163285.html<action name="register" class="example.register.RegisterAction" >
 <result name="success" type="dispatcher">
 
<param name="location">register-result.jsp</param>
 
</result>
 
<interceptor-ref name="params"/>
 
</action>
result标签里面?name"DCactionҎ名字q行视图输出?br /> type军_采用那一U视图技术,执行结果展现给用户Q下面是Type的类型:
(1)、dispatcher:通过javax.servlet.RequestDispatcher的forward()或include()Ҏ调度到页面展玎ͼq样的页面一般是Jsp面。location是必需的参敎ͼ表示执行完成之后转向的位|?br /> (2)、redirect:响应重新定向到览器指定的位置Q它会DAction执行完成的数据丢失或不再可用Q将响应定向到参数location指定的,新的url中,location是必需的,执行完成之后转向的位|?br /> (3)、chaining:Action执行完成之后q接到另一个Action中l执行,新的Action使用上一个Action的上下文QactionName是必需的,要被连接的Action名字?br /> (4)、velocity:它类似Jsp的执行环?使用JavaServlet容器)Q将Velocity模板转化成数据流的Ş式,直接通过JavaServlet输出Qlocation是必需的执行完成之后{向的位置(一般是.vm面).
<result name="success" type="velocity">
<param name="location">foo.vm</param>
</result>
(5)、FreeMarker:是一个纯Java模板引擎Q一个普通的Z模板生成文本的工兗location是必需的,执行完成之后转向的位|?/span>

<result name="success" type="freemarker">foo.ftl</result>

(6)、JasperReports:Action执行的结果通过JasperReports报表形式输出Q可以指定JasperReports支持的输出格?PDF,HTML,XLS,CVS,XML{?Q默认的是PDF格式?br />  

location

?/span>

执行完成之后转向的位|?/span>

parse

?/span>

默认的是“true”Q如果设|ؓ“false”Qlocation参数不会被OGNL表达式语a解析

dataSource

?/span>

它是Action的一个字D(通常是一个ListQ,OGNL表达式被用来去value stackQOgnlValueStackQ重新找回这个dataSource

format

?/span>

报表生成的数据格式,默认的是pdf

<result name="success" type="jasper">
<param name="location">foo.jasper</param>
<param name="dataSource">mySource</param>
<param name="format">CSV</param>
</result>



]]>
webwork学习W记(? http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163287.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:45:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163287.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163287.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163287.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163287.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163287.htmlInterceptor(拦截?框架:Interceptor(拦截?Actionq的行为独立出来,在Action执行前后q行Q这也就是我们所说的AOP(面向切面~程)?br /> 在webwork中如何创q拦截器,q用它?br /> 1?nbsp;创徏一个自己需要的Interceptorc,它必需实现
com.opensymphony.xwork.interceptor.Interceptor接口Q具体的开发见下面的Interceptor的原理?br /> 2?nbsp;在配|文Ӟxwork..xmlQ中xq个Interceptorc,它放在标{?lt;interceptor />中,同是<interceptor />标签嵌入?lt;interceptors />标签内部?br /> 3?nbsp;创徏Interceptor栈,使用标签Q?lt;interceptor-stack />Q让一lInterceptor可以按次序调用。(可选)
4?nbsp;指定Action所要用到的InterceptorQ前面申明过的)Q可以用<interceptor-ref />?lt;default-interceptor-ref />标签。前面的标签指定某个Action所用到的InterceptorQ如果Action没有被用<interceptor-ref />指定InterceptorQ它?lt;default-interceptor-ref />指定的Interceptor?br />  

(1)、imerQ记录Action执行的时_q做为日志信息输出;

(2)、loggerQ在日志信息中输执行的Action信息Q?/p>

(3)、chainQ将前一个执行结束的Action属性设|到当前的Action中。它被用在ResultType?#8220;chain”指定l果的Action中,该结果Action对象会从OgnlValueStack中获得前一个Action对应的属性,它实现Action链之间的数据传递;

(4)、static-paramsQ将xwork.xml配置文g里定义的Action参数Q设|到对应的Action中。Action参数使用<param />标签Q是<action />标签的直接子元素。我们这里定义的Actioncd需实现com.opensymphony.xwork.config.entities. Parameterizable接口Q?/p>

(5)、paramsQ将Requesth的参数设|到相应Action对象的属性中Q用h册例子用到过q个拦截器;

(6)、model-drivenQ如果Action实现ModelDriven接口Q它getModel()取得的模型对象存入OgnlValueStack中;

(7)、componentQ激zȝ件功能支持,让注册过的组件在当前Action中可用,即ؓAction提供IoCQ依赖倒{控制Q框架的支持Q?/p>

(8)、tokenQ核对当前ActionhQrequestQ的有效标识Q防止重复提交Actionh(request)?/p>

(9)、token-sessionQ功能同上,但是当提交无效的Actionh标识Ӟ它会请求数据保存到session中?/p>

(10)、validationQ实C用xml配置文gQ{Action}-validation.xmlQ对Action属性D行验证,详细L后面介绍的验证框架?/p>

(11)、workflowQ调用Actioncȝ验证功能Q假设Action使用ValidationAware实现验证QActionSupport提供此功能)Q如果验证没有通过Qworkflow会将hq回到input视图QAction?lt;result />中定义的Q?/p>

(12)、servlet-configQ提供Action直接对HttpServletRequest或HttpServletResponse{JavaServlet api的访问,Action要实现相应的接口Q例如:ServletRequestAware或ServletResponseAware{。如果必需要提供对JavaServlet api的访问,我们使用ServletActionContextQ在前面ActionContext章节中有介绍?/p>

(13)、prepareQ在Action执行之前调用Action的prepare()ҎQ这个方法是用来准备Action执行之前要做的工作。它要求我们的Action必需实现com.opensymphony.xwork. Preparable接口

(14)、conversionErrorQ用来处理框架进行类型{?Type Conversion)时的出错信息。它存储在ActionContext中的cd转化QType ConversionQ错误信息{化成相应的Action字段的错误信息,保存在堆栈中。根据需要,可以这些错误信息在视图中显C出来?br /> public String intercept(ActionInvocation invocation) throws Exception {
 String result = null;
 before(invocation);
 result = invocation.invoke();
 after(invocation, result);
 return result;
 }



]]>
webwork学习W记(? http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163284.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:44:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163284.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163284.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163284.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163284.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163284.html在Web应用E序开发中Q除了将h参数自动讄到Action的字D中Q我们往往也需要在Action里直接获取请?Request)或会话(SessionQ的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequestQ、响?HttpServletResponse)操作?br />       例子Q我们需要在Action中取得requesth参数username的|
      ActionContext context=ActionContext.getContext();
      Map params=context.getParameters();
      String username=(String)params.get("username");
(1)、ActionContext是Action执行时的上下文,上下文可以看作是一个容器,它存攄是Action在执行时需要用到的对象Q用webworkӞ我们的上下文放有h的参?Parameter)、会?Session)、Servlet上下?ServletContex)、本地化(Locale)信息{?br />       ActionContext的创建都是通过QActionContext context=(ActionContext)actionContext.get();来获取的QactionContext对象的创建:static ThreadLocal actionContext=new ActionContextThreadLocal();q样设计的好处是U程安全的?br /> (2) ServletActionContext,q个cȝ接承了ActionContext.它提供了直接与JavaServlet相关对象讉K的功能,它可以取得的对象有:

1?nbsp; javax.servlet.http.HttpServletRequestQHTTPservleth对象

2?nbsp; javax.servlet.http.HttpServletResponse;QHTTPservlet相应对象

3?nbsp; javax.servlet.ServletContextQServlet 上下文信?/p>

4?nbsp; javax.servlet.ServletConfigQServlet配置对象

5?nbsp; javax.servlet.jsp.PageContextQHttp面上下?br />

1?取得HttpServletRequest对象Q?/p>

HttpServletRequest request = ServletActionContext. getRequest();

2?取得HttpSession对象Q?/p>

HttpSession session = ServletActionContext. getRequest().getSession();



]]>
webwork学习W记(? http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163283.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:43:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163283.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163283.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163283.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163283.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163283.htmlwebwork中的Action在MVC模式中担L刉分的角色Q每个请求的动作都对应于一个相应的Action,一个Action是一个独立的工作单元和控制命令,它需要实现Xwork里的Action接口Q实现Action接口的execute()Ҏ?br />       Action的主要功能是提供从请求中取得参数的|转化成相应的模型Q在模型传递给执行业务操作的对象?/span>

   <action name="register" class="example.register.RegisterAction" >

       <result name="success" type="dispatcher">

           <param name="location">/register-result.jsp</param>

       </result>

       <interceptor-ref name="params"/>

</action>
<interceptor-refname="params"/>,interceptor-ref标签讄q个Action用到的拦截器Q?params"引用的是配置文g中的<interceptor name="params" class="com.opensymphony.xworkinterceptor.ParametersInterceptor"/>q个拦截器将在Action调用execute()Ҏ执行之前调用Q作用是requesth的参数通过表达式语a讄到相应Action的模型里?br /> ActionҎFormBean的不同可以分Zc:
      一cLField-Driven(字段驱动?Action
      Action直接用自己的字D|充当FormBean的功能,可以直接用域对象作ؓAction的字Dc?br />       二类是Model-Driven(模型驱动?Action
      他很想Struts的FormBean,但在webwork中,只要通过Java对象可以充当模型部分。Model-Driven(模型驱动?Action要求我们的Action实现com.opensymphony.xwork.ModelDriven接口Q它有一个方法:Object getModel();我们用这个方法返回我们的模型对象?br />       采用模型对象比较重要的一Ҏ在Action的配|文件Xwork.xml中要配置模型拦截器model-driven,他的作用是将模型对象保存到值堆栈中?br />

   <action name="registerModel" class="example.register.RegisterActionModel">

       <result name="success" type="dispatcher">

           <param name="location">/register-result-model.jsp</param>

       </result>

       <interceptor-ref name="model-driven"/>

       <interceptor-ref name="params"/>

    </action>



]]>
webwork学习W记(?http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163282.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:42:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163282.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163282.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163282.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163282.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163282.htmlwebwork目前最新版本是2.2Q现在webwork已经被拆分成?span style="color: #339966">Xwork1和webwork2两个目?br />       xworkz,灉|功能强大Q它是一个标准的Command模式实现Q完全从web层脱d来?br />       webwork2建立在Xwork之上Q处理http的响应和h?span style="color: #339966">webwork2使用ServletDispatcherhttph的变成Action(业务层Actionc?QSession(会话)Qapplication(应用E序)范围的映,requesth参数映射?/span>
      webwork安装
      首先?/span>https://webwork.dev.java.net/servlets/ProjectDocumentList  下蝲最新的webwork压羃包,q解压?br />       webwork-2.x.jar是webwork最新发布的jar?br />       webwork-example.war是webwork自带的功能演CZ子?br />       docs目录是webwork的用文,包括api文Qclover文档Q单元测试文等?br />       lib是webwork在运行或~译时用到的所有的jar?br />       一般的web框架都是通过一个JavaServlet控制器提供统一的请求入口,解析h的url,在去调用相应的Actionq行业务处理。webwork也不例外Q它要求你在web.xml文g里配|一个派遣器ServletDispatcher,它初始化webwork的一些配|信息,解析XWork的Action配置信息Q根据请求去l装和调用执行相应的拦截?Interceptor),Action,ActionResult{,具体配置如下Q?br />
   <servlet>

   <servlet-name>webwork</servlet-name>

   <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>

   </servlet>

   <servlet-mapping>

   <servlet-name>webwork</servlet-name>

   <url-pattern>*.action</url-pattern>

   </servlet-mapping>



]]>
webWok学习W记(一) http://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163281.html王永?/dc:creator>王永?/author>Mon, 26 Nov 2007 09:40:00 GMThttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163281.htmlhttp://www.aygfsteel.com/wyxdeniro/comments/163281.htmlhttp://www.aygfsteel.com/wyxdeniro/archive/2007/11/26/163281.html#Feedback0http://www.aygfsteel.com/wyxdeniro/comments/commentRss/163281.htmlhttp://www.aygfsteel.com/wyxdeniro/services/trackbacks/163281.htmlWebwork发行包中的文ƈ不是很全面,如果开发中遇到什么问题,dWebwork Wiki
站点查看在线文是个不错的选择Q?br /> http://www.opensymphony.com/webwork/wikidocs
   WebWork2 发行包中的\lib\core 目录下包含了WebWork2 用到的核心类库。将
\webwork-2.1.1.jar 以及\lib\core\*.jar 复制到Web 应用的WEB-INF\lib 目录?br />    开发webwork最主要的是~写配置文gweb.xml和xwork.xmlq两个比较重要?br /> web.xml:

<servlet>
<servlet-name>webwork</servlet-name>
<servlet-class>
com.opensymphony.webwork.dispatcher.ServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>webwork</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>

此后Q所有以.actionl尾的服务请求将由ServletDispatcher接管。页面提交到ServletDispatcher之后QServletDispatcher在xwork.xml中查找与之相对应的action,q进行处理?br />
xwork.xml:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
 " <xwork>
<include file="webwork-default.xml" /> ?br /> <package name="default" extends="webwork-default"> ?br /> <action name="login" ?br /> class="net.xiaxin.webwork.action.LoginAction">
<result name="success" type="dispatcher"> ?br /> <param name="location">/main.jsp</param>
</result>
<result name="loginfail" type="dispatcher">
<param name="location">/index.jsp</param>
</result>
<interceptor-ref name="params" /> ?br /> <interceptor-ref name="model-driven"/> ?br /> </action>
</package>
</xwork>

?include
通过include 节点Q我们可以将其他配置文g导入到默认配|文件xwork.xml 中?br /> 从而实现良好的配置划分?br /> ?package
XWork中,可以通过package对actionq行分组。类似Java 中package和class?br /> 关系。ؓ可能出现的同名Action提供了命名空间上的隔R?br /> 同时Qpackageq支持承关pR在q里的定义中Q我们可以看刎ͼ
extends="webwork-default"
"webwork-default"是webwork-default.xml文g中定义的packageQ这里?br /> q承,"default" package 自动拥有"webwork-default" package 中的所?br /> 定义关系?br /> ?action
Action配置节点Q这里可以设定Action的名U和对应实现cR?br /> ?result
通过result 节点Q可以定义Action q回语义Q即Ҏq回|军_处理模式以及
响应界面?br /> q里Q返回?success"QAction 调用q回gؓString cdQ对应的处理模式?br /> "dispatcher"?br /> 可选的处理模式q有Q?br /> 1. dispatcher
本系l页面间转向。类似forward?br /> 2. redirect
览器蟩转。可转向其他pȝ面?br /> 3. chain
处理结果{交给另外一个Action处理Q以实现Action的链式处理?br /> 4. velocity
指定的velocity模板作ؓl果呈现界面?br /> 5. xslt
指定的XSLT 作ؓl果呈现界面?br /> (5)  interceptor-ref
讑֮了施加于此Action的拦截器QinterceptorQ?br />

]]>
վ֩ģ壺 Ȩ| ײ| ԭ| | | ƽ| Ǩ| | | | ƽ| | Ҷ| | | | ½| | | ֬| | | ɽ| | ء| | | ʡ| | | | Ͱ| | | ζ| | ϲ| | | | |