`

Strut2+Spring整合框架搭建

 
阅读更多

参考:http://lukuijun.iteye.com/blog/350750

以下为我自己整理的步骤:

 

Struts2和Spring整合,创建一个web项目TestSS
1、整合struts2
1)导入strut2的jar包:

commons-logging-1.0.4.jar,

freemarker-2.3.8.jar,

ognl-2.6.11.jar,

struts2-core-2.0.12.jar,

xwork-2.06.jar,

javassist-3.11.0.GA.jar,

commons-fileupload-1.2.2.jar

commons-lang-2.5.jar。暂时导入这些jar包,到时候需要再导入。
2)将struts.xml文件放置在TestSS工程的src目录下。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<constant name="struts.objectFactory.spring.autoWire" value="name"></constant>
    <package name="struts2" extends="struts-default" >
    	
        <action name="login" class="com.test.action.LoginAction">
            <result name="input">/login.jsp</result>
            <result >/success.jsp</result>
         </action>
    </package>
   
   		
</struts>

 
3)在web.xml里面配置struts2用到的核心过滤器。

<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

2、整合spring
1)导入spring的jar包:

spring.jar

struts2-core-2.2.3.1.jar

spring-web-2.5.6.jar

spring-core-2.5.6.jar

spring-context-2.5.6.jar

spring-beans-2.5.6.jar


2)将applicationContext.xml文件放置在TestStrut2工程的WEB-INF目录下。

<?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: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-2.5.xsd
			http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-autowire="byName">

	
	<!-- 构造注入 -->
	<!--  
	<bean id="loginDao" class="com.test.dao.impl.LoginDaoImpl"></bean>
	<bean id="loginService" class="com.test.service.impl.LoginServiceImpl">
		<property name="loginDao" ref="loginDao"></property>
	</bean>
	<bean id="loginAction" class="com.test.action.LoginAction" scope="prototype">  
   	 	<property name="loginService" ref="loginService"></property>  
	</bean>  
	-->
	<!-- 改成自动装配如下 default-autowire="byName" -->
	<bean id="loginDao" class="com.test.dao.impl.LoginDaoImpl"/>
	<bean id="loginService" class="com.test.service.impl.LoginServiceImpl"/>
</beans>

 
3)在web.xml里面配置spring用到的监听器。

<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>
<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

 4)添加struts2-spring整合的插件:struts2-spring-plugin-2.2.3.1.jar,如果不使用这个插件,则需要在struts.xml里面配置:

<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />

 5)可以在web-inf下加入log4j的lib,在web.xml配置如下:

  <context-param>   
        <param-name>webAppRootKey</param-name>   
        <param-value>TestSS.root</param-value>   
    </context-param>   
    <context-param>   
        <param-name>log4jConfigLocation</param-name>   
        <param-value>/WEB-INF/log4j.properties</param-value>   
    </context-param>   
    <listener>   
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>   
    </listener>

 

 

3、测试struts2和spring整合对不对? 以下代码为项目配置完成后所有代码。

代码如下:

applicationContest.xml

<?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: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-2.5.xsd
			http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-autowire="byName">

	
	<!-- 构造注入 -->
	<!--  
	<bean id="loginDao" class="com.test.dao.impl.LoginDaoImpl"></bean>
	<bean id="loginService" class="com.test.service.impl.LoginServiceImpl">
		<property name="loginDao" ref="loginDao"></property>
	</bean>
	<bean id="loginAction" class="com.test.action.LoginAction" scope="prototype">  
   	 	<property name="loginService" ref="loginService"></property>  
	</bean>  
	-->
	<!-- 改成自动装配如下 default-autowire="byName" -->
	<bean id="loginDao" class="com.test.dao.impl.LoginDaoImpl"/>
	<bean id="loginService" class="com.test.service.impl.LoginServiceImpl"/>
</beans>

  

 

 

 

log4j中xml的配置

# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${TestSS.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

 

 

 

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>Login</title>
  </head>
  
  <body>
    <s:form action="login.action">
    	<s:textfield label="用户" name="user.name"></s:textfield>
    	<s:textfield label="密码" name="user.pwd"></s:textfield>
    	<s:submit label="登录"></s:submit>
    </s:form>
  </body>
</html>

 success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>SUCCESS</title>
  </head>
  <body>
   <s:property value="user.name"/>
  </body>
</html>

 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<context-param>   
        <param-name>contextConfigLocation</param-name>   
        <param-value>/WEB-INF/applicationContext.xml</param-value>   
    </context-param>   
	<listener>   
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   
    </listener> 
    
    <context-param>   
        <param-name>webAppRootKey</param-name>   
        <param-value>TestSS.root</param-value>   
    </context-param>   
    <context-param>   
        <param-name>log4jConfigLocation</param-name>   
        <param-value>/WEB-INF/log4j.properties</param-value>   
    </context-param>   
    <listener>   
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>   
    </listener>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="default1" extends="struts-default">
		<action name="login" class="com.test.action.LoginAction" >
			<result>success.jsp</result>
		</action>
	</package>
</struts>

 User类

package com.test.vo;

public class User {
	private String name;
	private String pwd;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
}

 LoginAction

package com.test.action;

import com.opensymphony.xwork2.Action;
import com.test.service.LoginService;
import com.test.vo.User;

public class LoginAction implements Action {
	private LoginService loginService;
	private User user; 
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String execute() throws Exception {
		System.out.println("user----");
		if(loginService.isValid()){
			System.out.println("is valid user");
		}
		return SUCCESS;
	}
	public LoginService getLoginService() {
		return loginService;
	}
	public void setLoginService(LoginService loginService) {
		this.loginService = loginService;
	}

}

 service接口

package com.test.service;

public interface LoginService {

	boolean isValid();

}

 service实现类

package com.test.service.impl;

import com.test.dao.LoginDao;
import com.test.service.LoginService;

public class LoginServiceImpl implements LoginService {

	LoginDao loginDao ;
	public boolean isValid() {
		return loginDao.isValid();
	}
	public LoginDao getLoginDao() {
		return loginDao;
	}
	public void setLoginDao(LoginDao loginDao) {
		this.loginDao = loginDao;
	}

}

 dao接口

package com.test.dao;

public interface LoginDao {

	boolean isValid();

}

 dao实现类

package com.test.dao.impl;

import com.test.dao.LoginDao;

public class LoginDaoImpl implements LoginDao{

	public boolean isValid() {
		return true;
	}

}

 运行tomcat启动:http://localhost:8080/TestSS/login.jsp

输入用户名和密码,点提交后后台打印出

user----
is valid user

分享到:
评论

相关推荐

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    Struts+Spring+Ibatis整合框架搭建配置文档

    ### Struts+Spring+Ibatis整合框架搭建配置详解 在当今复杂的软件开发环境中,整合不同的框架以构建高效、可维护的应用程序变得尤为重要。Struts、Spring与Ibatis(现称MyBatis)作为三个功能互补的Java框架,它们...

    struts2+spring+mybatis框架

    在Struts2+Spring整合中,Spring负责业务层对象的管理,提供IOC(Inversion of Control)容器来管理和控制对象的生命周期。同时,Spring的AOP模块可以用于实现如日志记录、权限控制等通用功能。 **MyBatis框架** ...

    struts2+spring+Ibatis框架包

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...

    Struts1.2+Spring2.5+Hibernate3.2框架搭建(一)

    文档"Struts1.2+Spring2.5+Hibernate3.2框架搭建(周禄康).doc"和"Struts1.2+Spring2.5+Hibernate3.2框架搭建(原版)(周禄康).doc"可能包含了详细的步骤和示例代码,帮助读者理解如何实际操作。"Struts+...

    struts2+spring2.5+hibernate3.2整合完整项目,带数据库脚本

    Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...

    轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书1

    《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发电子书1》是一本专注于Java EE企业级应用开发的书籍,主要涵盖了Struts 2、Spring和Hibernate这三个流行开源框架的整合应用。这本书对于Java...

    Struts1.3+Spring4.x+Hibernate4.x框架整合实现对书籍的增删改查(含分页)

    总结来说,"Struts1.3+Spring4.x+Hibernate4.x框架整合实现对书籍的增删改查(含分页)"项目展示了如何使用SSH框架来构建一个功能完善的书籍管理系统。Struts处理用户请求,Spring管理应用组件并提供事务支持,...

    spring+struts2+ibatis整合的jar包

    在提供的"spring+struts2+ibatis整合的jar包"中,lib1可能包含了这三个框架以及它们的依赖库。这些jar文件是运行整合应用必不可少的组件,它们包含了框架的API、实现和一些工具类,帮助开发者快速搭建和运行整合项目...

    Struts_2+Spring_3+Hibernate整合开发.part5.rar

     《轻量级Java EE企业应用实战:Struts2+Spring3+Hibernate整合开发(第3版)》介绍了Java EE领域的三个开源框架:Struts 2、Spring和Hibernate。其中Struts 2升级到2.2.1,Spring升级到3.0.5,Hibernate升级到了...

    Struts2+Spring+MyBatis环境搭建

    【Struts2+Spring+MyBatis环境搭建】是指在Java Web开发中整合这三个开源框架,构建一个完整的MVC架构。Struts2作为表现层框架,负责处理HTTP请求和视图展示;Spring作为业务层框架,提供依赖注入和事务管理等功能;...

    struts2+spring4+hibernate4工程搭建源码

    Struts2、Spring4和Hibernate4是Java...通过深入研究和实践这个"struts2+spring4+hibernate4工程搭建源码",开发者不仅可以了解这三个框架的基本用法,还能掌握如何在实际项目中整合它们,提升自己的Java Web开发能力。

    struts2+spring+hibernate+easyui管理框架

    Struts2+Spring+Hibernate+EasyUI 是一个经典的Java Web开发框架组合,广泛应用于企业级应用的构建。这个管理系统利用这些技术的特性,提供了一种高效、稳定且易于维护的解决方案。 **Struts2** 是一个强大的MVC...

    Java Web整合开发实战:基于Struts 2+Hibernate+Spring(PDF)

    Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...

    struts2+spring+ibatis整合项目实例

    `Struts+Spring+Ibatis整合框架搭建配置文档.doc`应该详细阐述了如何配置Spring以管理Struts2的Action和iBatis的数据源及SqlSession。 3. **iBatis**:iBatis是一个SQL映射框架,它将SQL语句与Java代码分离,使得...

    Struts2+Hibernate+Spring框架搭建(三)

    这篇博客“Struts2+Hibernate+Spring框架搭建(三)”着重介绍如何整合这三个框架,构建一个完整的Java Web项目。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它主要用于控制应用...

    Struts+Spring+Ibatis整合框架搭建文档

    ### Struts+Spring+Ibatis整合框架搭建知识点详解 #### 一、框架介绍与整合意义 **Struts**是一款开源的MVC框架,主要用于构建基于Java的Web应用程序。它简化了开发过程,使得开发者能够更加关注业务逻辑而非基础...

    eclipse搭建(Struts2.5+Spring5.0+hibernate5.2)整合框架Demo实例

    本教程将详细介绍如何使用Eclipse IDE搭建一个基于Struts2.5、Spring5.0和Hibernate5.2的整合框架,提供一个可运行的Demo实例。这个组合是Java企业级开发中常见的技术栈,它们各自负责不同的职责:Struts2作为前端...

Global site tag (gtag.js) - Google Analytics