搭建Struts2开发环境并整合Spring3
来源:互联网 发布:网络有好有坏的英文 编辑:程序博客网 时间:2024/06/05 02:44
三、搭建Struts2开发环境并整合Spring3
3.1、下载Struts2需要的jar包
1.strtus2-core
2.struts2-spring-plugin(struts2和Spring整合时需要使用到的插件)
3.struts2-convention-plugin(使用了这个插件之后,就可以采用注解的方式配置Struts的Action,免去了在struts.xml中的繁琐配置项)
4.struts2-config-browser-plugin(config-browser-plugin插件不是必须的,但是使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射)
在pom.xml文件中编写Struts2所需要的jar包,Maven会自动下载这些包
1 <!-- Struts2的核心包 --> 2 <dependency> 3 <groupId>org.apache.struts</groupId> 4 <artifactId>struts2-core</artifactId> 5 <version>2.3.16</version> 6 <!-- 7 这里的 exclusions 是排除包,因为 Struts2中有javassist,Hibernate中也有javassist, 8 所以如果要整合Hibernate,一定要排除掉Struts2中的javassist,否则就冲突了。 9 <exclusions>10 <exclusion>11 <groupId>javassist</groupId>12 <artifactId>javassist</artifactId>13 </exclusion>14 </exclusions> 15 -->16 </dependency>17 <!-- convention-plugin插件,使用了这个插件之后,就可以采用注解的方式配置Action -->18 <dependency>19 <groupId>org.apache.struts</groupId>20 <artifactId>struts2-convention-plugin</artifactId>21 <version>2.3.20</version>22 </dependency>23 <!--config-browser-plugin插件,使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射 -->24 <dependency>25 <groupId>org.apache.struts</groupId>26 <artifactId>struts2-config-browser-plugin</artifactId>27 <version>2.3.20</version>28 </dependency>29 <!-- Struts2和Spring整合插件 -->30 <dependency>31 <groupId>org.apache.struts</groupId>32 <artifactId>struts2-spring-plugin</artifactId>33 <version>2.3.4.1</version>34 </dependency>
3.2、编写Struts.xml配置文件
在src/main/resources目录下创建一个struts.xml文件,如下图所示:
struts.xml文件中的内容如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 3 <struts> 4 5 <!-- 指定由spring负责action对象的创建 --> 6 <constant name="struts.objectFactory" value="spring" /> 7 <!-- 所有匹配*.action的请求都由struts2处理 --> 8 <constant name="struts.action.extension" value="action" /> 9 <!-- 是否启用开发模式(开发时设置为true,发布到生产环境后设置为false) -->10 <constant name="struts.devMode" value="true" />11 <!-- struts配置文件改动后,是否重新加载(开发时设置为true,发布到生产环境后设置为false) -->12 <constant name="struts.configuration.xml.reload" value="true" />13 <!-- 设置浏览器是否缓存静态内容(开发时设置为false,发布到生产环境后设置为true) -->14 <constant name="struts.serve.static.browserCache" value="false" />15 <!-- 请求参数的编码方式 -->16 <constant name="struts.i18n.encoding" value="utf-8" />17 <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发(开发时设置为true,发布到生产环境后设置为false) -->18 <constant name="struts.i18n.reload" value="true" />19 <!-- 文件上传最大值 -->20 <constant name="struts.multipart.maxSize" value="104857600" />21 <!-- 让struts2支持动态方法调用,使用叹号访问方法 -->22 <constant name="struts.enable.DynamicMethodInvocation" value="true" />23 <!-- Action名称中是否还是用斜线 -->24 <constant name="struts.enable.SlashesInActionNames" value="false" />25 <!-- 允许标签中使用表达式语法 -->26 <constant name="struts.tag.altSyntax" value="true" />27 <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->28 <constant name="struts.dispatcher.parametersWorkaround" value="false" />29 30 <package name="basePackage" extends="struts-default">31 32 33 </package>34 35 </struts>
3.3、在web.xml中配置Struts2的过滤器
1 <!-- Struts2的核心过滤器配置 --> 2 <filter> 3 <filter-name>struts2</filter-name> 4 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 5 </filter> 6 <!-- Struts2过滤器拦截所有的.action请求 --> 7 <filter-mapping> 8 <filter-name>struts2</filter-name> 9 <url-pattern>*.action</url-pattern>10 </filter-mapping>
3.4、编写测试
首先,在src/main/java中创建me.gacl.action包,在包中编写一个 TestAction类,如下图所示:
代码如下:
1 package me.gacl.action; 2 3 import me.gacl.service.UserServiceI; 4 5 import org.apache.struts2.convention.annotation.Action; 6 import org.apache.struts2.convention.annotation.Namespace; 7 import org.apache.struts2.convention.annotation.ParentPackage; 8 import org.springframework.beans.factory.annotation.Autowired; 9 10 @ParentPackage("basePackage")11 @Action(value="strust2Test")//使用convention-plugin插件提供的@Action注解将一个普通java类标注为一个可以处理用户请求的Action,Action的名字为struts2Test12 @Namespace("/")//使用convention-plugin插件提供的@Namespace注解为这个Action指定一个命名空间13 public class TestAction {14 15 /**16 * 注入userService17 */18 @Autowired19 private UserServiceI userService;20 21 /**22 * http://localhost:8080/SSHE/strust2Test!test.action23 * MethodName: test24 * Description: 25 * @author xudp26 */27 public void test(){28 System.out.println("进入TestAction");29 userService.test();30 }31 }
这里使用@Autowired注解将userService注入到UserAction中。
测试Struts2的开发环境是否搭建成功,先执行【Maven install】操作,然后部署到tomcat服务器,最后启动tomcat服务器运行,
输入访问地址:http://localhost:8080/SSHE/strust2Test!test.action,访问结果如下:
测试通过,Struts2的开发环境搭建并整合Spring成功!这里提一下遇到的问题,我执行完Maven install命令之后,重新发布到tomcat服务器运行,第一次运行时出现了找不到action的404错误,后来就先执行Maven clean,然后clean一下项目,再执行Maven install命令重新编译项目,然后再发布到tomcat服务器中运行,这次就可以正常访问到action了,使用Maven总是会遇到一些奇怪的问题,好在凭借着一些平时积累的解决问题的经验把问题解决了。
- 搭建Struts2开发环境并整合Spring3
- 搭建Struts2开发环境并整合Spring3
- 搭建Hibernate4开发环境并整合Spring3
- 搭建Hibernate4开发环境并整合Spring3
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- 《大话设计模式》--就不能不换DB吗?--抽象工厂模式<AbstractFactory>(15)
- WPF能传递参数的RelayCommand
- 跳到文件指定位置加入版本信息
- jpa
- Linux学习之正则表达式
- 搭建Struts2开发环境并整合Spring3
- 设置系统时间
- Maximum Subarray
- TinyXmlParser开源喽
- ws javaee实现方式以及TgsWebservice中 MQ发送延迟问题(柬埔寨项目)
- 使用mac gradle指令 打包安卓apk遇到$TERM not set问题解决办法
- Tiny快速入门之控制层开发
- 搭建Hibernate4开发环境并整合Spring3
- HDU2196——Computer(树形DP,经典)