五步搞定Spring整合Strus

1. 项目需要有Struts包和Spring的core, aop, web 三个包(注意不是Spring自己的Web MVC), 将Spring整合Strus。具体的 .classpath 文件如下所示:

创新互联建站是一家集网站建设,博望企业网站建设,博望品牌网站建设,网站定制,博望网站建设报价,网络营销,网络优化,博望网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

 
 
 
  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥
  2. ﹤classpath﹥
  3.     ﹤classpathentry kind="src" path="src"/﹥
  4.     ﹤classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/﹥
  5.     ﹤classpathentry kind="con" path="com.genuitec.core.J2EE14_CONTAINER"/﹥
  6.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr.jar"/﹥
  7.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/beanutils.jar"/﹥
  8.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/digester.jar"/﹥
  9.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/fileupload.jar"/﹥
  10.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/logging.jar"/﹥
  11.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/validator.jar"/﹥
  12.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jakarta-oro.jar"/﹥
  13.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts.jar"/﹥
  14.     ﹤classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java--bin.jar"/﹥
  15.     ﹤classpathentry kind="con" path="melibrary.com.MYECLIPSE_SPRING20_CORE"/﹥
  16.     ﹤classpathentry kind="con" path="melibrary.com.MYECLIPSE_SPRING20_AOP"/﹥
  17.     ﹤classpathentry kind="con" path="melibrary.com.MYECLIPSE_SPRING20_WEB"/﹥
  18.     ﹤classpathentry kind="output" path="WebRoot/WEB-INF/classes"/﹥
  19. ﹤/classpath﹥ 

2. 对Struts 配置文件做修改加入Spring 托管功能.

创建 Spring 配置文件,将文件放到src 目录下,文件名称为 applicationContext.xml, 编译后放到WEB-INF/classes/ 下.

配置struts-config.xml文件,添加 spring的插件, 位置在 struts-config 文件的最末尾.

 
 
 
  1. value="/WEB-INF/classes/applicationContext.xml" />
  2. plug-in> 

3. 修改 Struts 的 struts-config.xml 中的Action配置。原来的代码:

 
 
 
  1. attribute="loginForm"
  2. input="/login.jsp"
  3. name="loginForm"
  4. path="/login"
  5. scope="request"
  6. validate="true"
  7. type="com.test.struts.action.LoginAction" /> 

改变后的代码:

 
 
 
  1. attribute="loginForm"
  2. input="/login.jsp"
  3. name="loginForm"
  4. path="/login"
  5. scope="request"
  6. validate="true"
  7. type="org.springframework.web.struts.DelegatingActionProxy" /> 

type 部份为修改内容, 这里将使用spring的代理器来对Action进行控制. 当提交到/login.do是将控制权交给了spring,然后由spring来把它转回到struts的Action.

4. Spring整合Strus,需要配置spring来实例化上一步中被删除的 Action 类.

 
 
 
  1. xml version="1.0" encoding="UTF-8"?>
  2. bean> 
  3. beans> 

Spring 通过 org.springframework.web.struts.DelegatingActionProxy 这个类, 然后根据 Struts 配置文件中的 和 Spring 配置文件中的 来将 Spring 管理下的 Struts Action 类和提交的路径匹配起来, 这些就是关于转交控制权的配置内容.

实践的过程中发现必须把 singleton="false"去掉才行, 否则就会无法初始化 Spring 框架, 不知道具体的原因是什么.

既然这个 Struts的Action 已经通过 Spring 来初始化, 所以就可以加入依赖注入, 整合Hibernate 的功能了. 例如典型的情况:

 
 
 
  1. com.test.struts.action.LoginAction 
  2. private UserManager userManager; 
  3. public UserManager getUserManager()...
  4. public void setUserManager(UserManager userMgmr) ... 
  5. public ActionForward execute(ActionMapping mapping,
  6. ActionForm form,
  7.     HttpServletRequest request, HttpServletResponse response) {
  8.     System.out.println("userManager=" + getUserManager());
  9.     getUserManager().someBusinessMethods();
  10.     .....
  11. }

然后就可以配置:

 
 
 
  1.   
  2.    
  3.    property>
  4. bean> 
  5.  

同理 Spring整合Hibernate 和没Struts 的时候一样, 也可以在这个文件中进行配置即可.

5. Spring整合Strus最后一步, 测试, 只要能打印出来 userManager 不为空, 就说明整合成功了. 如果出现 404 action servlet 不可用的错误, 一般都是 Spring 配置文件出错导致的.

网页题目:五步搞定Spring整合Strus
文章URL:http://www.gawzjz.com/qtweb/news25/203725.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联