time 
设为首页】【收藏本站
当前位置: 主页 > JAVA > Java高级 > 高级编程 > 【J2EE架构师】22、万能框架spring(四)spring整合struts2实例

【J2EE架构师】22、万能框架spring(四)spring整合struts2实例

时间:2012-11-17 20:41 点击:5551次 字体:[ ]




一、前言

SSH有了,现在我们要把我们的struts层从原来的1.3替换成struts2.x,引入了struts2.0后我们会发觉我们的代码和框架的变化还是不小的

二、Struts2的好处

1)在struts2的方法里,一切变量是线程安全的,而原有的struts1不是的;

2)在struts2中如果你声明了如下这样的代码:

  1. privater String studentName=””;  
  2.  
  3. public void setStudentName(String studentName){  
  4.  
  5. this.studentName = studentName;  
  6.  
  7. }  
  8.  
  9. public String getStudentName(){  
  10.  
  11. return this.studentName;  
  12.  

那么当你对这个studentName进行符值后,不需要再把它用request.setAttribute这样的形式把值带到页面中去了,相当于你可以省去在request中来回的setAttribute{…}getAttribute{…}的操作(有时由于忘记把一个listset 到request中去,经常导致一个页面就是不显示列表,对吧?这样的事可以被极大程度上避免掉)。

3)更丰富且描述简单的页面标签,可以直接支持将一个Object和页面的<input>进行绑定,如:

我在后台如果有一个StudentVO,这个StudentVO如下描述:

  1. private String studentNo = "";  
  2.  
  3. private String studentName = "";  
  4.  
  5.  
  6. public String getStudentNo() {  
  7.  
  8. return studentNo;  
  9.  
  10. }  
  11.  
  12.  
  13. public void setStudentNo(String studentNo) {  
  14.  
  15. this.studentNo = studentNo;  
  16.  
  17. }  
  18.  
  19.  
  20. public String getStudentName() {  
  21.  
  22. return studentName;  
  23.  
  24. }  
  25.  
  26.  
  27. public void setStudentName(String studentName) {  
  28.  
  29. this.studentName = studentName;  
  30.  

于是我在前台jsp里可以直接这样使用我的<input>标签和我这个VO中的某个字段进行绑定:

 

  1. <s:textfield name="studentVO.studentName" size="24" maxlength="25"/> 

4)原有在struts1中的formbean彻底消失,去而代之的是使用VO对象,一个strutsaction就是一个普通的类,只是它extendsActionSupport而己。

5)良好的注入机制,连session,request, response都可以注入了,因此你的一个action方法就是一个普通类方法,这样做的好处是极大化将servlet与我们的action进行解耦合。试想如果是原有的struts1的action方法,我现在要改成swing的actionPerform,你是不是要把原有的action方法包括传参都要进行重构啊?而现在有了struts2,由于连session,request, response都是被注入的,因此这个struts2的action方法可以直接重用。

Strtus2还有很多好处,这边不一一列举了,在struts2的官方文档和stepby step等书中详细有说,我们这边主要以实战为主,讲述struts2怎么和spring进行整合并且能够开发我们的应用。

三、整合spring和struts2

我们还是用我们的Maven2。

Struts2变化很大,它是一个几乎被重写的框架,而不是一个“增强”的框架,它是继承自xwrok的框架并且在整个框架中全面使用了filter机制。

对于我们的maven的pom.xml文件来说,这个lib库的改动还是很大的。

甚至还会出现一些莫名奇妙的错误而其原因是因为lib库的版本不对或者是有冲突,为此笔者整理了一份ssh2的所有需要的jar的mavenpom.xml文件。

虽然,我会在后面把这个xml文件完整列出来但还是希望大家在一开始跟着我能够一步步走,对pom.xml文件和工程进行排错,这样你将对一些常用的框架的lib库有个比较熟悉的过程。

3.1 延用原有的myssh工程中的pom.xml文件

我们新建一个maven的web工程-myssh2,并将原有的myssh工程中的pom.xml文件拷入工程中。

请确保你使用的jdk版本为version1.6.x。

【J2EE架构师】22、万能框架spring(四)spring整合struts2实例_www.fengfly.com

 

3.2 去除所有的struts1.3的依赖关系

 

打开这个pom.xml文件,把下面这段所有的关于struts1.3的依赖包全部去除。

  1. <dependency> 
  2.  
  3. <groupId>org.apache.struts</groupId> 
  4.  
  5. <artifactId>struts-core</artifactId> 
  6.  
  7. <version>1.3.10</version> 
  8.  
  9. </dependency> 
  10.  
  11. <dependency> 
  12.  
  13. <groupId>org.apache.struts</groupId> 
  14.  
  15. <artifactId>struts-el</artifactId> 
  16.  
  17. <version>1.3.10</version> 
  18.  
  19. </dependency> 
  20.  
  21. <dependency> 
  22.  
  23. <groupId>org.apache.struts</groupId> 
  24.  
  25. <artifactId>struts-extras</artifactId> 
  26.  
  27. <version>1.3.10</version> 
  28.  
  29. </dependency> 
  30.  
  31. <dependency> 
  32.  
  33. <groupId>org.apache.struts</groupId> 
  34.  
  35. <artifactId>struts-faces</artifactId> 
  36.  
  37. <version>1.3.10</version> 
  38.  
  39. </dependency> 
  40.  
  41. <dependency> 
  42.  
  43. <groupId>org.apache.struts</groupId> 
  44.  
  45. <artifactId>struts-mailreader-dao</artifactId> 
  46.  
  47. <version>1.3.10</version> 
  48.  
  49. </dependency> 
  50.  
  51. <dependency> 
  52.  
  53. <groupId>org.apache.struts</groupId> 
  54.  
  55. <artifactId>struts-scripting</artifactId> 
  56.  
  57. <version>1.3.10</version> 
  58.  
  59. </dependency> 
  60.  
  61. <dependency> 
  62.  
  63. <groupId>org.apache.struts</groupId> 
  64.  
  65. <artifactId>struts-taglib</artifactId> 
  66.  
  67. <version>1.3.10</version> 
  68.  
  69. </dependency> 
  70.  
  71. <dependency> 
  72.  
  73. <groupId>org.apache.struts</groupId> 
  74.  
  75. <artifactId>struts-tiles</artifactId> 
  76.  
  77. <version>1.3.10</version> 
  78.  
  79. </dependency> 


本文地址 : http://www.fengfly.com/plus/view-210313-1.html
标签: Spring struts2 开发实例 J2EE 架构师 万能框架
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: