这两天学SSH整合,看了一些教程,发觉langsin的tie和mldn的李兴华老师讲的不太一样,在将struts整合到spring时,struts中配置控制器后,小弟此时有两个疑问:
第一,需要把<action 的type属性去掉吗。
第二,需要在web.xml中增加如下代码吗?<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>只因小弟初学JAVA,问题可能比较粗浅,还望各位多多指教~其实在夏昕老师的OpenDoc中发现可以用spring提供的代理类整合SS,代理类很好理解小弟也测试成功。。不过使用控制器该怎么配呢,小弟还没测试成功啊。。
第一,需要把<action 的type属性去掉吗。
第二,需要在web.xml中增加如下代码吗?<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>只因小弟初学JAVA,问题可能比较粗浅,还望各位多多指教~其实在夏昕老师的OpenDoc中发现可以用spring提供的代理类整合SS,代理类很好理解小弟也测试成功。。不过使用控制器该怎么配呢,小弟还没测试成功啊。。
楼主【micro_sun】截止到2008-07-17 23:13:00的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:2 每贴平均分数:2
回帖的总数量:2 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:2
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
2、对
<bean name="/action" class="com...YourAction">
<property name="service" ref="YourService" />
</bean>
也就是在applicationContext.xml定义了<bean name="action的名字" ...
就可以把struts-config.xml中的type去掉
2.把applicationContext.xml放到默认路径下就可以把一下去掉
<param-name>contextConfigLocation </param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
struts-config.xml中的type属性的值是:
org.springframework.web.struts.DelegatingActionProxy同时还要保证spring配置文件applicationContext.xml 文件中
bean标签的name属性的值必须与struts-config.xml中的path属性的值相等
绝大多数web应用中都会在web应用启动的时候实例化ApplicationContext,
在web.xml必须增加你上面所提到的代码,才可以实现自动初始化。你也可以不必在web.xml文件中配置上面的代码,不过你得在你的
程序中手动的实例化ApplicationContext
<!-- 将控制交给spring -->
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
<message-resources parameter="com.hys.struts.ApplicationResources" />
<!-- 将spring配置文件插入到stuts里 -->
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
赞同六楼说的方式,我也喜欢applicationContext.xml里面配置bean name这样struts就不需要配置type了,我中觉得type这个属性从意义上感觉很别扭。没有bean name直观。
你说的这个是使用spring的代理类实现ssh整合,这个我知道也测试成功,不过好像也不必在web.xml中加那些代码 也不必手动实例化applicationcontext。
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
这句可以不加
<controller processorClass=
"org.springframework.web.struts.DelegatingRequestProcessor"/>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
如果在type里设置的话就不用了
2.可以。