分享
 
 
 

WebWork2与SpringFramework集成之实例篇(原创)(2)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

2、WebWork2与SpringFramework集成的配置

(1)ww2/WEB-INF/applicationContext.xml

l 由于不使用Spring MVC Framework实现Web表示层,将业务逻辑层和数据持久层组件的Bean配置从springapp-servlet.xml中移到applicationContext.xml中

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>

<property name="url">

<value>jdbc:mysql://localhost/test</value>

</property>

<property name="username"><value>test</value></property>

<property name="password"><value>test</value></property>

</bean>

<bean id="prodManDao" class="db.ProductManagerDaoJdbc">

<property name="dataSource">

<ref bean="dataSource"/>

</property>

</bean>

<bean id="prodMan" class="bus.ProductManager">

<property name="productManagerDao">

<ref bean="prodManDao"/>

</property>

</bean>

</beans>

(2)ww2/WEB-INF/web.xml

l 在web.xml中增加2个context监听器

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<listener>

<listener-class>com.atlassian.xwork.ext.ResolverSetupServletContextListener</listener-class>

</listener>

(3)ww2/WEB-INF/classes/xwork.xml

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

<include file="webwork-default.xml"/>

<package name="default" extends="webwork-default"

externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver">

<interceptors>

<interceptor name="reference-resolver"

class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"/>

<interceptor-stack name="externalStack">

<interceptor-ref name="reference-resolver"/>

<interceptor-ref name="defaultStack"/>

</interceptor-stack>

<interceptor-stack name="externalValidationWorkflowStack">

<interceptor-ref name="reference-resolver"/>

<interceptor-ref name="validationWorkflowStack" />

</interceptor-stack>

</interceptors>

<default-interceptor-ref name="externalStack"/>

<action name="springapp"

class="web.SpringappAction">

<external-ref name="prodMan">prodMan</external-ref>

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

<param name="location">/WEB-INF/template/hello.vm</param>

</result>

<!--

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

<param name="location">/WEB-INF/jsp/hello.jsp</param>

</result>

-->

</action>

<action name="priceIncreaseForm"

class="web.PriceIncreaseForm">

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

<param name="location">/WEB-INF/template/priceincrease.vm</param>

</result>

<!--

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

<param name="location">/WEB-INF/jsp/priceincrease.jsp</param>

</result>

-->

</action>

<action name="priceIncrease"

class="web.PriceIncreaseFormAction">

<external-ref name="prodMan">prodMan</external-ref>

<result name="input" type="velocity">

<param name="location">/WEB-INF/template/priceincrease.vm</param>

</result>

<!--

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

<param name="location">/WEB-INF/jsp/priceincrease.jsp</param>

</result>

-->

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

<param name="actionName">springapp</param>

</result>

<interceptor-ref name="externalValidationWorkflowStack" />

</action>

</package>

</xwork>

l XWork使用外部引用来使用Spring Bean配置中的引用,这需要:

l 在<package>标记中指定外部引用解析器为com.atlassian.xwork.ext.SpringServletContextReferenceResolver

l 重新组合Interceptor堆栈,以包含com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor;这里定义了两个Interceptor堆栈:externalStack和externalValidationWorkflowStack,前者被定义为缺省Interceptor引用,后者被需要数据有效性验证的Action引用

l 最后,使用<external-ref>标记在Action中引用外部的Spring Bean(有关Action的配置会在后面详述)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有