没有合适的资源?快使用搜索试试~ 我知道了~
通向架构师的道路(第二十二天)万能框架spring(四).docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 56 浏览量
2023-10-27
10:09:59
上传
评论
收藏 705KB DOCX 举报
温馨提示
试读
38页
通向架构师的道路(第二十二天)万能框架spring(四)
资源推荐
资源详情
资源评论
一、前言
SSH 有了,现在我们要把我们的 struts 层从原来的 1.3 替换成 struts2.x,引入了 struts2.0
后我们会发觉我们的代码和框架的变化还是不小的
二、Struts2 的好处
1)在 struts2 的方法里,一切变量是线程安全的,而原有的 struts1 不是的;
2)在 struts2 中如果你声明了如下这样的代码:
privater String studentName=””;
public void setStudentName(String studentName){
this.studentName = studentName;
}
public String getStudentName(){
return this.studentName;
}
那么当你对这个 studentName 进行符值后,不需要再把它用 request.setAttribute 这样的形
式把值带到页面中去了,相当于你可以省去在 request 中来回的
setAttribute{…}getAttribute{…}的操作(有时由于忘记把一个 listset 到 request 中去,经常导
致一个页面就是不显示列表,对吧?这样的事可以被极大程度上避免掉)。
3)更丰富且描述简单的页面标签,可以直接支持将一个 Object 和页面的<input>进行绑定,
如:
我在后台如果有一个 StudentVO,这个 StudentVO 如下描述:
private String studentNo = "";
private String studentName = "";
public String getStudentNo() {
return studentNo;
}
public void setStudentNo(String studentNo) {
this.studentNo = studentNo;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
于是我在前台 jsp 里可以直接这样使用我的<input>标签和我这个 VO 中的某个字段进行绑
定:
<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。
3.2 去除所有的 struts1.3 的依赖关系
打开这个 pom.xml 文件,把下面这段所有的关于 struts1.3 的依赖包全部去除。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-core</artifactId>
<version>1.3.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-el</artifactId>
<version>1.3.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-extras</artifactId>
<version>1.3.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-faces</artifactId>
<version>1.3.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-mailreader-dao</artifactId>
<version>1.3.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-scripting</artifactId>
<version>1.3.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-taglib</artifactId>
<version>1.3.10</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-tiles</artifactId>
<version>1.3.10</version>
</dependency>
3.3 增加 struts2 的依赖包
我们把原有的 struts1.3 的依赖包去除后加入 struts2 的依赖包
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.1.2</version>
</dependency>
存盘后,此时 maveneclipse 插件会自动开始编译和下载相关的 jar 到你的本地 maven 的
repository 中,然后我们会发觉这个 pom.xml 文件出错了:
抛一个 sun.tool.jar 没有找到的错误。
道理很简单,因为该 tool.jar 其实已经存在在我们本地安装的 jdk 的 lib 目录下了,因此我们
不需要这个包,但是 maven 是自动依赖的,你没有看到它在 pom.xml 文件中出现不代表这
层依赖关系不存在。
因此我们需要做的是 exclude 这个包。
让我们在 maveneclipse 插件中打开这个 pom.xml 文件,切换到“DependencyHierarchy”视
图,然后找到这个 tool.jar 文件,点左边这个 list 中的 tools:1.5.0 然后右键选“ExcludeMaven
Artifact”。
剩余37页未读,继续阅读
资源评论
小小哭包
- 粉丝: 1900
- 资源: 3864
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功