注:spring的作用就是实例化bean,整合struts实际上就是使用spring管理action类的过程。
1、导入jar包
导入struts和spring的jar,struts还需要一个struts2-spring-plugin-2.3.4.1.jar。
2、web.xml
需要配置struts和spring。
<?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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>spring_struts2</display-name>
<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 对Spring容器进行实例化 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置sturts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
3、struts.xml
action的class不是bean类本身,而是spring的bean的id名称
<?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.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="ru" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<action name="login" class="loginaction">
<result name="sucess">
/jsp/logsucess.jsp
</result>
<result name="error">
/jsp/logerror.jsp
</result>
</action>
</package>
</struts>
4、LoginAction.java(action类)
里面的对象属性由spring负责实例化。
package com.ru.action;
import com.opensymphony.xwork2.ActionSupport;
import com.ru.service.UserCheck;
public class LoginAction extends ActionSupport {
private String username;
private String password;
private UserCheck uc;
public void setUc(UserCheck uc) {
this.uc = uc;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute() throws Exception {
if(uc.result(username, password)=="sucess"){
return "sucess";
}else{
return "error";
}
}
}
5、UserCheck.java(这个是业务逻辑层的判断代码)
package com.ru.service;
public class UserCheck {
public String result(String username,String password){
if("ru".equals(username)&&"123".equals(password)){
return "sucess";
}else{
return "error";
}
}
}
6、applicationContext.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-3.0.xsd">
<!-- services -->
<!-- 配置一个业务逻辑bean -->
<bean id="usercheck" class="com.ru.service.UserCheck"/>
<!-- 配置一个action -->
<bean id="loginaction" class="com.ru.action.LoginAction">
<property name="uc" ref="usercheck"/>
</bean>
</beans>
7、login.jsp
注意的是:action实现的是重定向,说以需要完整访问路径,这里使用<base href="<%=basePath%>">,获取完整路径
-
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
-
pageEncoding="UTF-8"%>
-
<%@tagliburi="/struts-tags"prefix="s"%>
-
<%
-
Stringpath=request.getContextPath();
-
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
-
%>
-
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
-
<html>
-
<head>
-
<basehref="<%=basePath%>">
-
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
-
<title>Inserttitlehere</title>
-
</head>
-
<body>
-
-
<s:formaction="login"method="post">
-
<s:textfieldkey="用户名"name="username"></s:textfield>
-
<s:passwordkey="密 码"name="password"></s:password>
-
<s:submitvalue="登录"></s:submit>
-
</s:form>
-
</body>
-
</html>
分享到:
相关推荐
**JPA+Spring+Struts整合实例** 整合JPA、Spring和Struts的主要目标是实现数据访问层(DAO)、业务逻辑层(Service)和表示层(View)的有效协同工作。 **1. 配置环境** 首先,确保你的项目中包含了这三个框架的...
Spring与struts整合主要有三种方式,通过Spring的ActionSupport类,通过Spring的DelegatingRequestProcessor类、通过Spring的DelegatingActionProxy类。
在Struts2和Spring整合中,可以使用Spring提供的拦截器,例如`org.springframework.web.struts.DelegatingInterceptor`,它能让Spring容器处理Action的实例化。 7. **事务管理**:Spring提供了强大的事务管理功能。...
本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...
在与Spring整合时,MyBatis的SqlSessionFactory可以通过Spring的Bean配置管理,实现事务控制和依赖注入。 Spring框架作为全能型的IoC(Inversion of Control)/DI(Dependency Injection)容器,负责管理和装配应用...
struts2、spring、ibatis整合实例 struts2、spring、ibatis整合实例 struts2、spring、ibatis整合实例 struts2、spring、ibatis整合实例
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
在"Struts2_Spring_Hibernate整合开发实例"中,我们将深入探讨如何将这三个框架集成到一个项目中,实现无缝协作。这个实例提供了详细的步骤和代码示例,帮助开发者快速理解和掌握整合过程。 首先,Struts2的集成...
Spring 和 Struts2 是两个...总之,Spring 和 Struts2 的整合利用了两者的优势,提供了一种强大的方式来构建可扩展、易于维护的 Java Web 应用。通过深入学习和实践,开发者可以掌握这种整合技巧,并在实际项目中应用。
在Struts2与Spring整合中,Spring可以作为服务层,管理Struts2的Action实例,实现业务逻辑。 **Hibernate3** 是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库。Hibernate自动处理SQL语句和...
Struts2、Hibernate3.3和Spring3.0是Java Web开发中著名的三大框架,它们分别负责MVC模式中的Action层、持久化层和依赖注入与业务逻辑管理。本实例将详细阐述如何将这三个框架整合在一起,实现一个完整的CRUD(创建...
在整合Spring时,我们通常会利用Spring的Action代理来替代Struts2默认的Action实例化方式,这样可以将Action的创建和依赖注入交给Spring容器来管理。具体实现包括在Struts配置文件中声明Spring插件,并在Spring的...
3. **整合Struts2-Spring插件** 引入Struts2的Spring插件,该插件使得Spring管理的Action类可以在Struts2中直接使用。在struts.xml配置文件中启用该插件。 4. **Action类的配置** 创建Spring管理的Action类,通常...
【标题】"Mybatis3+Spring4 +Struts2整合源码"是一个示例项目,展示了这三大流行Java Web框架的集成与协作。Mybatis3是轻量级的持久层框架,Spring4则是一个全面的企业级应用框架,而Struts2则作为MVC架构的一部分,...
这个压缩包中的"SpringStruts2"示例项目很可能就是这样一个整合实例,包含了配置文件、Action类和必要的注释,是学习和理解两者整合的好资源。深入研究并实践这个示例,有助于提升对Spring和Struts2整合的理解和应用...
在本实例中,`spring2.5.5+struts2+ibatis2.3.4登录实例.doc`可能包含了一个基本的登录功能的实现,展示了Struts2的Action配置和结果转发。 2. **Spring**:Spring框架是企业级Java应用的核心容器,提供了依赖注入...
将Spring与Struts1.2整合,可以利用Spring的强大功能来管理Struts的Action和业务逻辑,提高代码的可测试性和可维护性。 4. **整合步骤** - **配置Spring**:首先创建Spring配置文件(如`applicationContext.xml`...
4. 整合Struts2和Spring:通过Struts2的Spring插件,使Action类成为Spring的Bean。 5. 整合Spring和MyBatis3:通过Spring的SqlSessionTemplate或MyBatis的SqlSessionFactoryBean,实现数据访问。 完成以上配置后,...
3. **Struts2的插件机制**:Struts2提供了Spring插件,该插件负责连接Struts2和Spring,允许Struts2通过Spring获取Action实例。这需要在struts.xml配置文件中添加相应的配置。 4. **AOP代理**:Spring的AOP功能可以...