webwork中的Action在MVC模式中担任控制部分的角色,每个请求的动作都对应于一个相应的Action,一个Action是一个独立的工作单元和控制命令,它需要实现Xwork里的Action接口,实现Action接口的execute()方法。
      Action的主要功能是提供从请求中取得参数的值,转化成相应的模型,在将模型传递给执行业务操作的对象。

   <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标签设置这个Action用到的拦截器,"params"引用的是配置文件中的<interceptor name="params" class="com.opensymphony.xworkinterceptor.ParametersInterceptor"/>这个拦截器将在Action调用execute()方法执行之前调用,作用是将request请求的参数通过表达式语言设置到相应Action的模型里。
Action根据FormBean的不同可以分为二类:
      一类是Field-Driven(字段驱动的)Action
      Action将直接用自己的字段来充当FormBean的功能,可以直接用域对象作为Action的字段。
      二类是Model-Driven(模型驱动的)Action
      他很想Struts的FormBean,但在webwork中,只要通过Java对象就可以充当模型部分。Model-Driven(模型驱动的)Action要求我们的Action实现com.opensymphony.xwork.ModelDriven接口,它有一个方法:Object getModel();我们用这个方法返回我们的模型对象。
      采用模型对象比较重要的一点是在Action的配置文件Xwork.xml中要配置模型拦截器model-driven,他的作用是将模型对象保存到值堆栈中。

   <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>




 

posted on 2007-06-22 11:01  王永庆  阅读(412)  评论(0编辑  收藏  举报