本节主讲将struts与spring进行整合:
1,新建一个WEB工程:工程名为strutsspring,在其src目录上新建struts.xml配置文件
将struts相关的7个JAR包,拷至工程的WebRoot/Web-inf/lib目录下
2,配置 Web.xml文件,加上struts的过滤
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.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>
</web-app>
经过以上两步配置,此工程已是标准的struts工程。
修改Tomcat/conf/server.xml配置文件,加上
<Context path="/strutsspring" docBase="E:\workspace\strutsspring\WebRoot" reloadable="true"/>
3,将spring相关的JAR包导入工程,将applicationContext.xml文件放入工程的web-inf目录下
4,将struts与spring整合:
将struts lib目录下的struts2-spring-plugin-2.0.14.jar包复制到工程中,此包中只有一个class文件。
修改web.xml文件,加入监听器,如下:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
启动tomcat服务器,启用完成。
例子:下面用一个登录的例子,结合struts与spring开发
登录页面login.jsp, 要求输入用户名与密码
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix ="s" uri="/struts-tags"%>
<html>
<head>
</head>
<body>
<s:form action="login">
<s:textfield name="username" size="20" label="username"></s:textfield>
<s:password name="password" size="20" label="password"></s:password>
<s:submit></s:submit>
</s:form>
</body>
</html>
定义一个接口,isLogin方法用于判断用户名与密码是否正确
package com.test.service;
public interface LoginService {
public boolean isLogin(String username,String password);
}
实现类,当username为hello,password为world时,返回true,否则返回false
package com.test.service.impl;
import com.test.service.LoginService;
/*
* 该类完成业务处理,向外暴露的是LoginService接口
*/
public class LoginServiceImpl implements LoginService {
public boolean isLogin(String username, String password) {
if("hello".equals(username) && "world".equals(password)){
return true;
}
return false;
}
}
action类中不处理业务逻辑,逻辑由LoginService 接口负责,其对象由spring负责生成
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
import com.test.service.LoginService;
public class LoginAction extends ActionSupport {
private String username;
private String password;
private LoginService loginService;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public LoginService getLoginService() {
return loginService;
}
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
public void setPassword(String password) {
this.password = password;
}
//下面这个loginService由spring生成
public String execute() throws Exception {
if(loginService.isLogin(username, password)){
return "success";
}else{
return "error";
}
}
}
struts配置文件,此文件中不再负责生成action,改为由spring配置文件生成,class对应的值,必须对应spring配置文件中的bean id
<?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="strutsspring" extends="struts-default">
<!--下面这个class中的loginAction对应的是spring配置文件applicationContext.xml文件中声明的loginAction bean -->
<!--现在由spring负责生成action-->
<action name="login" class="loginAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
spring配置文件,负责生成action及loginService对象
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="loginService" class="com.test.service.impl.LoginServiceImpl" scope="singleton"></bean>
<bean id="loginAction" class="com.test.action.LoginAction" scope="prototype">
<property name="loginService" ref="loginService"></property>
</bean>
</beans>
其中scope配置是重点!其范围如下图所示
一般无状态类应使用singleton,而action则建议使用request或prototype
无状态类是指只有方法,没有属性的类。
分享到:
相关推荐
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
Spring 和 Struts2 是两个...总之,Spring 和 Struts2 的整合利用了两者的优势,提供了一种强大的方式来构建可扩展、易于维护的 Java Web 应用。通过深入学习和实践,开发者可以掌握这种整合技巧,并在实际项目中应用。
总的来说,"最新项目系统:Struts2+Spring4+Hibernate4三大框架整合"为学习和实践Java Web开发提供了一个实用的平台,对于提升开发者的技术水平和项目经验具有极大的帮助。通过深入研究和实践,开发者可以掌握Java ...
以国内使用最广泛的Struts为例,其新版本Struts2与前一版Struts1.x已经有了天壤之别。Hibernate也从2.0升级为3.X,近期Spring也最新推出了2.5版。读者如果再参考以前的版本书籍学习,无异于南辕北辙,而《JavaWeb...
以下章节源码[03] [04] [05] [08] [10] [11] [12] [13] [14] [15] [16]
将Struts2和Spring整合可以充分利用各自的优势,实现更加灵活、高效的应用开发。 整合Struts2和Spring主要涉及以下几个关键步骤: 1. **添加依赖**:首先,需要在项目的构建配置文件(如Maven的pom.xml或Gradle的...
介绍了Java EE领域的三个开源框架:Struts 2、Spring和Hibernate。 这是第三部分,我上传的上限是60MB,所以不得不分包额!
在"Spring与Struts 2整合.zip"这个压缩包中,可能包含了一系列的配置文件、源代码和示例项目,帮助开发者了解和学习如何将这两个框架有效地结合在一起。通过学习和实践这些材料,开发者可以掌握在实际项目中整合...
比较流行的一本书,在公司内很受欢迎 比较实用 下半部分,需与上半部分放在一起解压。
Struts2整合Spring和JPA是企业级Java应用开发中常见的技术组合,它们分别负责不同的职责:Struts2作为一款成熟的MVC框架,主要用于处理Web层的请求与响应;Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和...
下面将详细介绍Spring与Struts2整合的相关知识点。 **一、整合背景** Spring和Struts2的整合主要基于两者的互补性。Spring提供了一种全面的业务层和持久层管理方案,而Struts2则专注于视图和控制层。整合这两者可以...
**Struts2与Spring的整合** Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了强大的控制层,帮助开发者构建可维护的、结构清晰的Web应用程序。而Spring则更倾向于提供业务逻辑和...
《Struts2、Spring与Hibernate整合应用:学生成绩管理系统》 在IT行业中,构建一个高效、稳定的Web应用程序常常需要整合不同的框架。本项目“学生成绩管理系统”就是基于Struts2、Spring和Hibernate三大主流Java ...
综上所述,"DWR与SPRING,DWR与STRUTS2的整合"主题涵盖了现代Java Web开发中重要的三个方面:DWR的实时通信能力、Spring的全面后端支持和Struts2的MVC架构。通过整合这三者,开发者可以构建出具有高效交互、灵活管理...
5. 配置Struts2:在struts.xml中配置Action,指定Action类和结果视图。Action类可以是Spring管理的Bean,这样Struts2可以通过Spring获取Action实例。 6. 创建视图:使用JSP或其他视图技术创建用户界面,Struts2会...
当使用Spring整合时,Action类通常不再直接依赖于Service,而是通过@Autowired注解从Spring容器中注入Service。例如: ```java @Controller public class MyAction { @Autowired private MyService myService; ...
1. 导入的包 <br>l struts2的五个基础包:commons-logging-1.1.jar; <br>freemarker-2.3.8.jar; <br>ognl-2.6.9.jar; <br>struts-core-2.0.6.jar; <br>xwork-2.0.0.jar. <br>l spring的核心包:...
下面我们将深入探讨Struts2与Spring整合的相关知识点。 1. **Struts2框架**: - Struts2是一个基于MVC设计模式的Web应用框架,用于简化Java Web应用的开发。 - 它提供了强大的Action类,负责处理请求并调用业务...
将Spring与Struts1.2整合,可以利用Spring的强大功能来管理Struts的Action和业务逻辑,提高代码的可测试性和可维护性。 4. **整合步骤** - **配置Spring**:首先创建Spring配置文件(如`applicationContext.xml`...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...