论坛首页 Java企业应用论坛

webwork与spring整合(下)

浏览 2074 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-24  

  刚才我们已经知道了,在纵向上是webwork的mvc容器在起作用,在横向上是依赖于Spring的Ioc来管理类.

 那么我们从最初的web.xml配置说起吧.

  web.xml文件配置:

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"    
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"    
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
  5.     <context-param>  
  6.     <param-name>contextConfigLocationparam-name>  
  7.     <param-value>/WEB-INF/classes/applicationContext.xmlparam-value>  
  8.   context-param>  
  9.        
  10.     <filter>  
  11.         <filter-name>webworkfilter-name>  
  12.         <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcherfilter-class>  
  13.     filter>  
  14.        
  15.     <filter-mapping>  
  16.         <filter-name>webworkfilter-name>  
  17.         <url-pattern>*.actionurl-pattern>  
  18.     filter-mapping>  
  19.     <listener>  
  20.     <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>  
  21.     listener>  
  22.     
  23.           
  24.     <taglib>  
  25.    <taglib-uri>webworktaglib-uri>  
  26.    <taglib-location>/WEB-INF/lib/webwork-2.2.4.jar taglib-location>  
  27.         taglib>    
  28. web-app>  

 

   接着我们注意看form表单

 

  其中action指向login.action意思是要它来处理,那么它在何方.请看xwork.xml的配置:

xml 代码
  1. <action name="login" class="LoginAction">  
  2.             <result name="success" type="dispatcher">  
  3.              <param name="location">/main.jspparam>  
  4.             result>  
  5.             <result name="loginfail" type="dispatcher">  
  6.                 <param name="location">/index.jspparam>  
  7.             result>  
  8.             <interceptor-ref name="modelParamsStack" />  
  9.         action>  

  根据上面的配置我们有理由相信这个name为login的action会处理这个post的请求的.但是这个action的本质是什么呢?

有一点webwork基础的人都知道一般它可以是一个实现了Action接口的类.

  这个时候请注意看  class="LoginAction"意思是说这个action实际上就是由loginAction 来处理了.为什么这里不是通常的

"com.xxxx.XXAction".因为从这里开始Ioc就接管了它. 在bean配置文件里我们定义了:

<bean class="com.starter.action.LoginAction" id="LoginAction"></bean><bean class="com.starter.action.LoginAction" id="LoginAction"></bean>注意一下webwork.properties的配置 <property name="objUser">
<ref bean="User"></ref></property> <property name="userService">
<ref bean="UserService"></ref></property> 由此我们可以看到刚才的class="LoginAction"实际上LoginAction只是一个bean的id而已.具体是什么在配置文件中已经定义好了.并对该action类注入了2个属性.至此我们需要考虑的就只是业务逻辑与数据的具体操作实现了.此时Everyting  is  controled by Ioc.

  1. <bean id="LoginAction" class="com.starter.action.LoginAction">   
  2.         <property name="objUser">   
  3.             <ref bean="User" />   
  4.         </property>   
  5.         <property name="userService">   
  6.             <ref bean="UserService" />   
  7.         </property>   
  8.     </bean>   
  9.     <bean id="UserService"  
  10.         class="com.starter.service.impl.UserServiceImpl">   
  11.         <property name="userDao">   
  12.             <ref bean="UserDAO" />   
  13.         </property>   
  14.     </bean>   
  15.     <bean id="UserDAO" class="com.starter.dao.impl.UserDAOImpl2" parent="baseDAO"></bean>   
  16.     <bean id="User" class="com.starter.vo.User"></bean>  

 

webwork.objectFactory = spring
webwork.tag.altSyntax = true

 

   只要遵循面向接口的编程原则,下面的细节不提了.

暂放几天代码提供下载.请点这里

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics