1 適合讀者
本文針對有一定的web基礎,webwork基礎,對spring有一定的了解。
http://www.springframework.org/ 站點可以了解更多關于spring的詳細信息. Spring是一個很好的AOP框架,能提供自動的事務管理。
http://www.opensymphony.com/webwork/ 站點可以了解更多的webwork . Webwork是一個很好的 MVC 框架,以下簡單介紹,webwork 和 spring 的融合,以用戶注冊為例。
2 整合步驟
2 .1使用 SpringObjectFactory
dev.java.net上的 xwork-optional 包括了對 xwork-spring 的支持,可以下載些包。包中只有4個類,可以根據具體情況使用。我在例子中使用了SpringObjectFactory類和SpringObjectFactoryListener 類,并安照webwork的文件在web.xml加入了,以下節點
<!-- This needs to be after Spring ContextLoaderListener -->
<listener>
<listener-class>com.opensymphony.xwork.spring.SpringObjectFactoryListener</listener-class>
</listener>
但在實際工作中不能使用,回為在SpringObjectFactoryListener類中寫的,加載些類必須要先加載org.springframework.web.context.ContextLoaderListener類,由于些類在web.xml配置如下,后于listener的執行。
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
ContextLoaderServlet 的作用是加載 spring配置信息(在int方法中),SpringObjectFactoryListener 的作用是設置 XWork 和 Webwork 的環境,使這能從spring 中加載數據和信息(在contextInitialized(ServletContextEvent event)方法中,當啟動web應用程序是調用).
要使ContextLoaderServlet比SpringObjectFactoryListener類更早執行,我使用的方法是重載ContextLoaderServlet,在中子類的int方法中設置XWork 和 Webwork 的環境,去掉SpringObjectFactoryListener 監聽器,并整改web.xml中的spring配置,如下:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>spring.server.ContextLoaderServletServer</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
2 .2 配置webwork
在webwork.xml中增加如下節點
<action name="registerSupport-spring" class="registerSupportBean" >
<result name="success" type="dispatcher">
<param name="location">/register-result.jsp</param>
</result>
<result name="input" type="dispatcher">
<param name="location">/registerSupport.jsp</param>
</result>
<interceptor-ref name="validationWorkflowStack"/>
</action>
其中的registerSupportBean在spring中配置
2 .3 配置spring
在spring中加入action 配置如下
<!-- action -->
<bean name="registerSupportBean" class="spring.action.RegisterActionSupport"
singleton="false" >
<property name="userBean">
<ref bean="userBean"/>
</property>
</bean>
些處的registerSupportBean 即為在webwork中要調用的類名。
Copyright 2003-2005 www.sohozu.com All Rights Reserved