以前都是用的struts1与spring结合,才学struts2不久,做了一个spring与struts2整合的小例子。
下面是我做的过程:
首现,搭建好struts2与spring的环境,我用的是eclipse,不是myEclipse可以直接导入包,所以还得自己手动的导包。
要实现的东西很简单,读出一个SET集合中的内容。
因为spring是面向接口的编程,所以,我们先来写一个接口:
package springIoc;
import java.util.Set;
public interface ChatService {
public Set<String> getUserNames();//
}
然后是接口的实现类:
package springIoc;
import java.util.HashSet;
import java.util.Set;
public class ChatServiceImpl implements ChatService{
public Set<String> getUserNames() {
Set<String> users = new HashSet<String>();
users.add("zhuxiange");
users.add("lilihua");
users.add("lilihuaMyLove");
return users;
}
}
最后是action:
package springIoc;
import java.util.Set;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class ChatAction extends ActionSupport{
private Set<String> userNames;
private ChatService chatService;//依赖注入service
public Set<String> getUserNames() {
return userNames;
}
public void setChatService(ChatService chatService) {
this.chatService = chatService;
}
public String execute(){
userNames = chatService.getUserNames();
return SUCCESS;
}
}
配置文件:
从web开始:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name > Struts 2 IoC Demo </display-name >
<!-- Spring配置文件的存放位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<filter >
<filter-name > struts-cleanup </filter-name >
<filter-class >
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter >
<filter >
<filter-name > struts2 </filter-name >
<filter-class >
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter >
<filter-mapping >
<filter-name > struts-cleanup </filter-name >
<url-pattern > /* </url-pattern >
</filter-mapping >
<filter-mapping >
<filter-name> struts2 </filter-name >
<url-pattern> *.action </url-pattern >
</filter-mapping>
<!-- 配置spring的监听器 -->
<listener >
<listener-class >
org.springframework.web.context.ContextLoaderListener
</listener-class >
</listener >
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name ="springIoc" extends ="struts-default">
<action name="Chat" class="chatAction">//尤其注意这里,这里不再是struts2的类名,而是spring中的bean 的ID.
<result> /UserList.jsp </result >
</action>
</package>
applicationContext.xml(看web.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"
xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="chatService" class="springIoc.ChatServiceImpl"/>
<bean id="chatAction" class="springIoc.ChatAction" scope ="prototype">
<property name="chatService">
<ref local ="chatService"/>
</property>
</bean>
</beans>
</struts>
页面:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix ="s" uri="/struts-tags" %>
<html >
<head >
<title> User List </title >
</head >
<body>
<h2> User List </h2 >
<ol>
<s:iterator value ="userNames" >
<li><s:property /></li >
</s:iterator >
</ol >
</body>
</html>
最后的结果为:
User List
- zhuxiange
- lilihuaMyLove
- lilihua
分享到:
相关推荐
将 Struts2 与 Spring 结合,通常会使用 Spring MVC 框架,通过 `@Controller` 注解标记 Action 类,并利用 Spring 自动装配功能来管理依赖。Spring MVC 还提供了其他注解,如 `@RequestMapping`, `@GetMapping`, `@...
当Struts2与Spring结合时,Spring可以作为依赖注入容器,为Struts2的Action提供依赖。Struts2-Spring插件能够自动扫描并加载Spring配置文件中的Bean,使得Action实例可以在不直接new的情况下被创建和管理。这样,...
3. **整合目的**:将 Struts2 与 Spring 结合,主要是利用 Spring 的 DI 和 AOP 能力,增强 Struts2 控制器的灵活性和可测试性,同时简化业务逻辑的管理。 4. **配置整合**: - **web.xml**:在 `web.xml` 文件中...
**Struts2与Spring的集成** 在没有Struts2-Spring-Plugin的情况下,要在Struts2应用中使用Spring,需要手动配置Action类与Spring Bean之间的关联。而有了这个插件,配置过程变得更加简单。以下是Struts2-Spring-...
struts2-spring-plugin.jar :struts,spring插件。有了这个插件,spring容器才能在全应用中适用。 在我们集成struts2+spring+hibernate,也就是所谓的S2SH,不可避免的要引入struts2-spring-plugin.jar插件。 本文...
Struts2 与Spring 结合,使用Spring 来管理Action 实例
同时,Spring与Struts2可以通过Spring-Struts2插件无缝集成,使得Action可以直接由Spring管理,增强了系统的可测试性。 **MyBatis** 是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了更灵活的SQL操作...
当Struts2与Spring结合时,主要的集成点包括: 1. **Action类的管理**:Spring管理Struts2的Action实例,通过依赖注入提供业务服务。 2. **Action的Spring注解**:使用`@Autowired`和`@Qualifier`注解来注入依赖。 ...
将Struts2与Spring结合使用,可以实现更高效的企业级应用开发。Spring可以作为Struts2的Action实现,通过ActionSupport类,我们可以方便地利用Spring的依赖注入特性。此外,Struts2的Interceptor可以与Spring的AOP...
对于Struts2和Spring的配置,我们需要在`struts.xml`和`spring-context.xml`文件中进行相应的设置,例如定义Action类、配置Spring Bean以及指定Struts2与Spring的整合方式。同时,确保web.xml文件中配置了...
4. **Struts2与Spring集成**:为了结合这两个框架的优点,我们需要配置Struts2的Spring插件。这将使Struts2能够从Spring容器中获取Action实例,实现Action的依赖注入。配置通常包括修改`struts.xml`中的`<package>`...
当与Struts2和Spring结合时,可以构建出高度可维护、可扩展的企业级应用。 ### 环境配置示例 在给定的部分内容中,提到了一系列的环境变量设置,这通常是Java开发环境中常见的路径配置,包括Java JDK的路径、...
同时,Spring4的Spring MVC模块可以与Struts2结合使用,提供另一种MVC实现方式,以应对更复杂的应用场景。 Hibernate则是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。在电子商务系统...
Struts2与Spring结合,可以实现更灵活的控制流和强大的动作管理。 **Hibernate框架** Hibernate 是一个对象关系映射(ORM)工具,它简化了Java应用与数据库之间的交互。通过Hibernate,开发者可以将Java对象直接...
Struts2与Spring的整合使得我们可以直接在Spring容器中声明和管理Action,实现请求的转发和结果的渲染。 接着,MyBatis是数据库操作的利器,它允许开发者直接编写SQL语句,将SQL与Java代码紧密结合,避免了...
当我们把Struts2和Spring结合起来使用时,可以创建出高效且可维护的企业级应用。通常,Struts2负责前端请求的处理,Spring则负责业务逻辑的管理和服务的提供。Spring可以通过其IoC容器初始化Struts2的Action类,并...
Spring还提供了对事务管理、数据访问、Web应用的支持,以及与许多其他框架的集成,如Struts2。在SSi框架中,Spring通常用于管理Bean的生命周期,提供事务控制,以及整合其他框架,如iBatis。 iBatis是一个持久层...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
这个“Struts2+Spring3+MyBatis结合项目”是一个实战示例,旨在帮助开发者深入理解和实践这三大框架的集成与应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Web应用框架。它主要负责...
在本文中,我们将深入探讨如何实现Struts2与Spring的集成,以及利用拦截器来增强应用的功能。 首先,Struts2 是一个基于MVC设计模式的开源Web框架,它提供了强大的控制器层,使得开发者可以更方便地处理HTTP请求和...