`
退役的龙弟弟
  • 浏览: 453882 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3整合struts2实例

阅读更多

注: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%>">,获取完整路径

 

  1. <%@pagelanguage="java"contentType="text/html;charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@tagliburi="/struts-tags"prefix="s"%>
  4. <%
  5. Stringpath=request.getContextPath();
  6. StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  7. %>
  8. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  9. <html>
  10. <head>
  11. <basehref="<%=basePath%>">
  12. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  13. <title>Inserttitlehere</title>
  14. </head>
  15. <body>
  16. <!--使用struts标签创建一个表单-->
  17. <s:formaction="login"method="post">
  18. <s:textfieldkey="用户名"name="username"></s:textfield>
  19. <s:passwordkey="密 码"name="password"></s:password>
  20. <s:submitvalue="登录"></s:submit>
  21. </s:form>
  22. </body>
  23. </html>

 

 

 

分享到:
评论

相关推荐

    JPA+Spring+Struts整合实例,JPA+Spring+Struts整合实例

    **JPA+Spring+Struts整合实例** 整合JPA、Spring和Struts的主要目标是实现数据访问层(DAO)、业务逻辑层(Service)和表示层(View)的有效协同工作。 **1. 配置环境** 首先,确保你的项目中包含了这三个框架的...

    Spring与struts整合开发实例

    Spring与struts整合主要有三种方式,通过Spring的ActionSupport类,通过Spring的DelegatingRequestProcessor类、通过Spring的DelegatingActionProxy类。

    整合struts2和spring

    在Struts2和Spring整合中,可以使用Spring提供的拦截器,例如`org.springframework.web.struts.DelegatingInterceptor`,它能让Spring容器处理Action的实例化。 7. **事务管理**:Spring提供了强大的事务管理功能。...

    ibatis+Spring+struts2整合实例

    本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...

    struts2_mybatis_spring_框架实例整合_数据库 文档

    在与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、spring、ibatis整合实例

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

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

    Struts2_Spring_Hibernate整合开发实例

    在"Struts2_Spring_Hibernate整合开发实例"中,我们将深入探讨如何将这三个框架集成到一个项目中,实现无缝协作。这个实例提供了详细的步骤和代码示例,帮助开发者快速理解和掌握整合过程。 首先,Struts2的集成...

    spring与struts2整合

    Spring 和 Struts2 是两个...总之,Spring 和 Struts2 的整合利用了两者的优势,提供了一种强大的方式来构建可扩展、易于维护的 Java Web 应用。通过深入学习和实践,开发者可以掌握这种整合技巧,并在实际项目中应用。

    Struts2 Spring2 Hibernate3 整合实例

    在Struts2与Spring整合中,Spring可以作为服务层,管理Struts2的Action实例,实现业务逻辑。 **Hibernate3** 是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库。Hibernate自动处理SQL语句和...

    struts2+hibernate3.3+spring3.0整合实例

    Struts2、Hibernate3.3和Spring3.0是Java Web开发中著名的三大框架,它们分别负责MVC模式中的Action层、持久化层和依赖注入与业务逻辑管理。本实例将详细阐述如何将这三个框架整合在一起,实现一个完整的CRUD(创建...

    Struts2整合Spring、JPA

    在整合Spring时,我们通常会利用Spring的Action代理来替代Struts2默认的Action实例化方式,这样可以将Action的创建和依赖注入交给Spring容器来管理。具体实现包括在Struts配置文件中声明Spring插件,并在Spring的...

    Spring与Struts2整合

    3. **整合Struts2-Spring插件** 引入Struts2的Spring插件,该插件使得Spring管理的Action类可以在Struts2中直接使用。在struts.xml配置文件中启用该插件。 4. **Action类的配置** 创建Spring管理的Action类,通常...

    Mybatis3+Spring4 +Struts2整合源码

    【标题】"Mybatis3+Spring4 +Struts2整合源码"是一个示例项目,展示了这三大流行Java Web框架的集成与协作。Mybatis3是轻量级的持久层框架,Spring4则是一个全面的企业级应用框架,而Struts2则作为MVC架构的一部分,...

    Spring2.0整合Struts2.0

    这个压缩包中的"SpringStruts2"示例项目很可能就是这样一个整合实例,包含了配置文件、Action类和必要的注释,是学习和理解两者整合的好资源。深入研究并实践这个示例,有助于提升对Spring和Struts2整合的理解和应用...

    struts2+spring+ibatis整合项目实例

    在本实例中,`spring2.5.5+struts2+ibatis2.3.4登录实例.doc`可能包含了一个基本的登录功能的实现,展示了Struts2的Action配置和结果转发。 2. **Spring**:Spring框架是企业级Java应用的核心容器,提供了依赖注入...

    Spring整合集成Struts1.2最简单例子

    将Spring与Struts1.2整合,可以利用Spring的强大功能来管理Struts的Action和业务逻辑,提高代码的可测试性和可维护性。 4. **整合步骤** - **配置Spring**:首先创建Spring配置文件(如`applicationContext.xml`...

    Struts2+Spring+Mybaits3框架整合实例

    4. 整合Struts2和Spring:通过Struts2的Spring插件,使Action类成为Spring的Bean。 5. 整合Spring和MyBatis3:通过Spring的SqlSessionTemplate或MyBatis的SqlSessionFactoryBean,实现数据访问。 完成以上配置后,...

    Struts2与Spring2框架整合实例

    3. **Struts2的插件机制**:Struts2提供了Spring插件,该插件负责连接Struts2和Spring,允许Struts2通过Spring获取Action实例。这需要在struts.xml配置文件中添加相应的配置。 4. **AOP代理**:Spring的AOP功能可以...

Global site tag (gtag.js) - Google Analytics