代码改变世界

解决spring和struts配合问题

2009-02-10 12:06  乱世文章  阅读(132)  评论(0编辑  收藏  举报


最近因为做weboa系统,我采用了struts+spring+hibernate的整体架构,我按照目前网上流行的这方面的配置文件在web.xml中加入了:

 

  <param-name>contextconfiglocation</param-name> 【程序编程相关:struts中配置过滤文件!

 

<context-param> 【推荐阅读:如何在Eclipse3.0.1上安装Ec

 

 </context-param> 【扩展信息:java版的MD5

 

  <param-value>/web-inf/applicationcontext.xml</param-value>  

 

<servlet>

 

   <servlet-name>springcontextservlet</servlet-name>

 

   <servlet-class>org.springframework.web.context.contextloaderservlet</servlet-class>  

 

   <load-on-startup>1</load-on-startup&g
然后在applicationcontext.xml文件中进行了hibernate与相关业务对象的配置,为了在struts中使用这些业务对象,我定义了一个action类 【程序编程相关:struts中配置过滤文件!

 

 </servlet> 【推荐阅读:如何在Eclipse3.0.1上安装Ec

 

运行时发现一个问题,就是每个调用了业务对象的action类的execute方法都执行了两次,查了不少资料都没有提到这个问题,论坛上也没有 【扩展信息:java版的MD5

 

然后所有的action类从这个类中继承,这个类负责查找定义在spring中的业务对象,编写好java文件与xml文件,执行ant在tomcat4上部署,

 

人问到这个问题,好奇怪呀!

 

最后,决定不依赖web.xml文件,把所有的spring配置文件(现在只有一个applicationcontext.xml)放到web-inf下的classes目录下的

 

springconf目录下(该目录要自己创建),写一个类来负责系统对spring中业务对象的查找,action中需要用到业务对象时就调用该类查找,再

 

把这个类做成单子的形式,部署测试成功!

 

现在有一个问题,为什么这个问题没有人提到过呢?还是我一开始就把web.xml与applicationcontext.xml配置错了?