struts的包就不列了,只列下spring中用到的包
spring:spring-asm-3.0.5.RELEASE.jar,spring-beans-3.0.5.RELEASE.jar,spring-context-3.0.5.RELEASE.jar,spring-core-3.0.5.RELEASE.jar,spring-expression-3.0.5.RELEASE.jar,spring-web-3.0.5.RELEASE.jar,struts2-spring-plugin-2.3.16.3.jar
sturts.xml文件只需添加
<constant name="struts.objectFactory" value="spring" />
,其它不用改。
web.xml中只需添加
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
其它不用改。
struts.xml中包含的一个文件<include file="testAjax.xml"/>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="ajax" namespace="/ajax" extends="json-default">
<action name="TestAjax_*" method="{1}" class="a">
<result name="success" type="json">
<param name="data">result</param>
</result>
</action>
</package>
</struts>
applicationContext.xml
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="autodetect">
<bean id="a" class="example.TestAjax"/>
</beans>
需要注意的地方是testAjax.xml文件中action中的class属性跟applicationContext.xml文件中的id属性是配对的,如果applicationContext.xml中没有对应的就让struts去创建,有对应的就由spring创建。
当创建一个对象的时候,它会用Struts2配置文件中的class属性去和Spring配置文件中的id属性进行关联,如果能找到,则由Spring创建,否则由Struts 2框架自身创建,然后由Spring来装配。
个人觉得struts中为了用spring多加了包,多加了配置,单独使用struts的话就少配置一些内容,特别感觉struts.xml和applicationContext.xml很多重复的。