Struts2整合Spring
2015-09-04 20:04
603 查看
在一个Maven的web项目中,整合struts2和spring开发,下面是一个正确的配置方法。在这里说一下因为spring支持注解和xml配置,所以struts2整合spring有两种方法,一个是注解配置方案,一个是xml配置方案。
1. 在maven项目中的pom.xml 中配置需要导入的jar包。
3. struts.xml配置。
4. spring.xml配置。
如果是注解配置的话,在spring.xml中可以不配置action的映射关系,而只需要开启注解配置项就够了。
5. action类
index.jsp
success.jsp
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.objectFactory" value="spring" /> <package name="default" namespace="/" extends="json-default"> <!-- struts2的配置方式 --> <action name="User_*" class="com.yc.ssm.vote.web.action.UserAction" method="{1}"> <result name="success">success.jsp</result> <result name="fail">/page/{1}.jsp</result> </action> <!-- 下面的是struts2整合spring之后的配置方式 --> <action name="User_*" class="userAction" method="{1}"> <result type="redirect"> /page/manage.jsp</result> <result name="fail"> /page/{1}.jsp</result> </action> <action name="Subject_*" class="subjectAction" method="{1}"> <result>page/ajaxManage.jsp</result> </action> </package> </struts>
1. 在maven项目中的pom.xml 中配置需要导入的jar包。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yc.ssm</groupId> <artifactId>Vote</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <span style="white-space:pre"> </span><!-- 这里是jar包的版本的一些配置项 --> <properties> <project.builder.sourceEncoding>UTF-8</project.builder.sourceEncoding> <junit.version>4.12</junit.version> <web.version>3.0.0-beta-2</web.version> <log.version>1.7.12</log.version> <mybatis.version>3.3.0</mybatis.version> <mybatis.spring.version>1.2.2</mybatis.spring.version> <struts.version>2.5-BETA1</struts.version> <spring.version>4.1.6.RELEASE</spring.version> <mysql.version>5.1.34</mysql.version> <dbcp2.version>2.1</dbcp2.version> </properties> <span style="white-space:pre"> </span><span style="font-family: Arial, Helvetica, sans-serif;"><!-- 这里是依赖的jar包的一些配置项 --></span> <dependencies> <!-- 测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!--javaee --> <dependency> <groupId>jboss.web</groupId> <artifactId>servlet-api</artifactId> <version>${web.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>jboss.web</groupId> <artifactId>jsp-api</artifactId> <version>${web.version}</version> <scope>provided</scope> </dependency> <!-- 日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${log.version}</version> </dependency> <!-- 数据库 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>oracle-driver</artifactId> <version>11g</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>${dbcp2.version}</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis.spring.version}</version> </dependency> <!-- struts2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>${struts.version}</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</artifactId> <version>${struts.version}</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-dojo-plugin</artifactId> <version>2.3.24</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>${struts.version}</version> </dependency> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <build> <finalName>Vote</finalName> </build> </project>2. web.xml配置。
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.yc.ssm.cinema.web.action</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3. struts.xml配置。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.objectFactory" value="spring" /> <package name="default" namespace="/" extends="json-default"> <!-- struts2的配置方式 --> <action name="User_*" class="com.yc.ssm.vote.web.action.UserAction" method="{1}"> <result name="success">/page/{1}.jsp</result> <result name="fail">/page/{1}.jsp</result> </action> <!-- 下面的是struts2整合spring之后的配置方式 --> <action name="User_*" class="userAction" method="{1}"> <result type="redirect"> /page/manage.jsp</result> <result name="fail"> /page/{1}.jsp</result> </action> <action name="Subject_*" class="subjectAction" method="{1}"> <result>page/ajaxManage.jsp</result> </action> </package> </struts>
4. spring.xml配置。
如果是注解配置的话,在spring.xml中可以不配置action的映射关系,而只需要开启注解配置项就够了。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><span style="white-space:pre"> </span><!-- 开启注解 --><span style="white-space:pre"> </span> <context:annotation-config /> <context:component-scan base-package="com.yc.ssm.vote"/> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- spring dataSource --> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- mybatis与spring整合 --> <bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="typeAliasesPackage" value="com.yc.ssm.vote.entity"/> <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/> </bean> <!-- 配置映射接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.yc.ssm.vote.mapper"/> <property name="sqlSessionFactoryBeanName" value="SqlSessionFactory"/> </bean> <!-- spring事物管理配置 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 声明式事物 --><span style="white-space:pre"> </span><tx:annotation-driven transaction-manager="transactionManager"/><span style="white-space:pre"> </span><!-- action xml配置方式 --><span style="white-space:pre"> </span><bean id="userAction"<span style="white-space:pre"> </span>class="com.yc.ssm.vote.web.action.UserAction"/><span style="white-space:pre"> </span> <span style="font-family: Arial, Helvetica, sans-serif;"></beans></span>
5. action类
package com.yc.ssm.vote.web.action; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ModelDriven; import com.yc.ssm.vote.entity.User; import com.yc.ssm.vote.service.UserService; @Controller("userAction") public class UserAction implements ModelDriven<User> { private User user; private String errorMsg; @Autowired private UserService userService; public void setUser(User user) { this.user = user; } public String getErrorMsg() { return errorMsg; } public String login() { user = userService.login(user); if (user != null) { ActionContext.getContext().getSession().put("user", user); return "success"; } errorMsg = "用户名或密码错误"; return "fail"; } @Override public User getModel() { user = new User(); return user; } }6. 响应页面。
index.jsp
<pre name="code" class="html"><%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <jsp:forward page="/page/login.jsp" /> <form action="user_login.action"> 用户名:<input type="text" name="用户名" /><br/> 密码:<input type="password" name="密码"/><br/> <input type="submit" value="登陆"/> </form> </body> </html>
success.jsp
<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <h1>登陆成功.!</h1> </body> </html>
相关文章推荐
- java安全沙箱(二)之.class文件检验器
- Java transient关键字使用笔记
- org.springframework.dao.InvalidDataAccessApiUsageException: Name must not be null or empty!;
- javaSE基础编程——编写一个简单的计算器
- java分页类(程序处理分页,非数据库处理分页)
- jdk1.8 HashMap简介翻译
- java script
- 《Java核心技术卷二》笔记(一)流与文件
- javaSE基础编程——字节流
- javaSE基础编程——String的转换功能
- 初识 maven
- javaSE基础编程——斐波那契数列
- window平台下 Eclipse Ndk开发中的Method 'NewStringUTF' could not be resolved问题
- javaSE基础编程——排序(冒泡,选择)
- javaSE基础编程——输出10000到100000之间的回文数
- LeetCode (Java) Roman to Integer
- javaSE基础编程——for循环(输入行数,列数,输出对应行列数的*)
- Java_!!_自动装箱和自动拆箱
- java连接Mysql数据库:
- spring注解