`

Struts2.1.6与Spring2.5.6框架整合

阅读更多

 

1、在MyEclipse中新建项目(test
2
Struts包导入
   
暂时导入所必需的包,其他包将在用到时导入:
   commons-fileupload-1.2.1.jar
   commons-logging-1.0.4.jar
   freemarker-2.3.13.jar
   ognl-2.6.11.jar
   struts2-core-2.1.6.jar
   xwork-2.1.2.jar
 3
、复制在Struts目录的例子程序中WEB-INF\classes\struts.xml文件,粘贴到项目的src目录下,主要保留其文件头:

 1 <?xml version="1.0" encoding="GBK" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4     "http://struts.apache.org/dtds/struts-2.0.dtd">
 5
 6 <struts>
 7     <package name="struts2" extends="struts-default">
 8
 9     </package>
10 </struts>


4
、配置web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 5     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 6
 7     <filter>
 8         <filter-name>struts2</filter-name>
 9         <filter-class>
10             org.apache.struts2.dispatcher.FilterDispatcher
11         </filter-class>
12     </filter>
13     <filter-mapping>
14         <filter-name>struts2</filter-name>
15         <url-pattern>/*</url-pattern>
16     </filter-mapping>
17
18     <welcome-file-list>
19         <welcome-file>index.jsp</welcome-file>
20     </welcome-file-list>
21 </web-app>

5、引入Spring

    解压spring-framework-2.5后把dist目录下的spring.jar,lib\log4j目录下的log4j.jar、lib\jakarta-commons目录下的 comms-logging.jar加入

   如果在项目中用到AOP,则还需要将lib\aspectj目录下的aspectjrt.jar、aspectjweaver.jar加入。

6、在src目录下建立三个文件
   applicationContext-actions.xml
   applicationContext-beans.xml
   applicationContext-common.xml
   
这三个文件其实是applicationContext.xml的分解,为的是避免所有配置放在同一文件,造成混乱。
   
结构均如下:

 1 <?xml version="1.0" encoding="GBK"?>
 2
 3 <beans xmlns="http://www.springframework.org/schema/beans"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xmlns:tx="http://www.springframework.org/schema/tx"
 7     xmlns:aop="http://www.springframework.org/schema/aop"
 8     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 9                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
10                 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
11                 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
12
13 </beans>


7
、需要在web.xml进行配置

    <context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>classpath*:applicationContext-*.xml</param-value><!-当在src包下用这种方式--->

       or<param-value>/WEB-INF/applicationContext-*.xml</param-value>><!-当在>/WEB-INF/下用这种方式--->   

 </context-param>

 

    <listener>
        
<listener-class>
            org.springframework.web.context.ContextLoaderListener
        
</listener-class>
    
</listener>

   前一段代码的配置是因为我们配置了后一段代码的配置后它默认是到WEB-INF下查找applicationContext.xml文件,我们现在改到src目录下并进行文件分解。

8
、需要引入Struts2中的另一个包
   struts2-spring-plugin-2.1.6.jar
9
、测试是否整合成功
1)建立页面login.jspwelcome.jsperror.jsp分别为登录页面、登录成功页面、出错页面
login.jsp

 1 <% @ page language="java" contentType="text/html; charset=GB18030"
 2     pageEncoding="GB18030"%>
 3 <% @ taglib prefix="s" uri="/struts-tags"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6     <head>
 7         <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
 8         <title>
登录页面</title>
 9     </head>
10     <body>
11         <s:form action="login" method="post">
12             <s:textfield name="username" label="username" />
13             <s:password name="password" label="password" />
14             <s:submit value="submit" />
15         </s:form>
16     </body>
17 </html>

welcome.jsp

 1 <% @ page language="java" contentType="text/html; charset=GB18030"
 2     pageEncoding="GB18030"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5     <head>
 6         <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
 7         <title>
登录成功</title>
 8     </head>
 9     <body>
10         用户名:${username }
11         <br>
12         密码:${password }
13         <br>
14     </body>
15 </html>


2)建包com.test.managercom.test.manager.impl分别存放业务逻辑处理的接口和其实现,分别建立接口LoginManager.java和其实现LoginManagerImpl.java
LoginManager.java

1 package com.test.manager;
2
3 public interface LoginManager  {
4     public boolean isLogin(String username, String password);
5 }

LoginManagerImpl.java,只是测试用,判断用户名密码是否为intrlintrl,若是则登录成功

 1 package com.test.manager.impl;
 2
 3 import com.test.manager.LoginManager;
 4
 5 public class LoginManagerImpl implements LoginManager {
 6     public boolean isLogin(String username, String password)
 7      {
 8         if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim()))
 9          {
10             return true;
11         }
12         return false;
13     }
14 }

3)在applicationContext-beans.xml把实现类配置上,以让Spring进行管理

    <bean id="loginManager"
        class
="com.test.manager.impl.LoginManagerImpl">
    
</bean>

4)创建包com.test.action用于存放action,并新建LoginAction.java,继承ActionSupport
包含从页面所接收参数usernamepassword,以及业务逻辑处理类LoginManager类型的loginManager,给usernamepassword设置getset,给loginManager设置set方法,以让Spring为我们自动注入;overwrite父类中的

 1 package com.test.action;
 2
 3 import com.opensymphony.xwork2.ActionSupport;
 4 import com.test.manager.LoginManager;
 5
 6 @SuppressWarnings("serial")
 7 public class LoginAction extends ActionSupport  {
 8     private LoginManager loginManager;
 9     private String username;
10     private String password;
11
12     public String getUsername()  {
13         return username;
14     }
15
16     public void setUsername(String username)  {
17         this.username = username;
18     }
19
20     public String getPassword()  {
21         return password;
22     }
23
24     public void setPassword(String password)  {
25         this.password = password;
26     }
27
28     public void setLoginManager(LoginManager loginManager)  {
29         this.loginManager = loginManager;
30     }
31     
32     @Override
33     public String execute() throws Exception  {
34
35         if(loginManager.isLogin(username, password))
36          {
37             return SUCCESS;
38         }
39         return INPUT;
40     }
41 }

5)在applicationContext-actions.xml中进行配置,也让Spring来管理LoginAction

    <bean id="loginAction" class="com.test.action.LoginAction"
        scope
="prototype">
        
<property name="loginManager" ref="loginManager"></property>
    
</bean>

6)在struts.xml中进行配置,处理页面提交的请求,配置actionloginlogin一定要和login.jspformaction属性名匹配。此时struts.xml文件如下:

 

本步骤中<action>标签中的class属性的值跟第5步的中的applicationContext-actions.xml中的<bean>标签中的id属性值必须是一样的~~这样才能找到

 1 <?xml version="1.0" encoding="GBK" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4     "http://struts.apache.org/dtds/struts-2.0.dtd">
 5
 6 <struts>
 7     <package name="struts2" extends="struts-default">
 8         <action name="login" class="loginAction">
 9             <result name="success">welcome.jsp</result>
10             <result name="input">login.jsp</result>
11             <result name="error">error.jsp</result>
12         </action>
13     </package>
14 </struts>

7)此时目录结构如下:

8)部署项目Tomcat服务器,启动服务器,进入登录页面,进行登录测试:
若用户名密码不为intrl/intrl,则登录失败,返回登录页面,注意地址栏的变化

若输入intrl/intrl则登录成功,跳至welcome.jsp页面,显示用户名和密码

10
、以上结果证明,Struts2.1.6Spring2.5.6框架整合成功

 

分享到:
评论

相关推荐

    Struts2.1.6与Spring2.5.6框架整合开发

    Struts2.1.6与Spring2.5.6框架的整合开发是Java Web开发中的常见实践,这两种框架各自有着独特的优势,结合使用可以构建出高效、可维护的Web应用程序。Struts2作为MVC(Model-View-Controller)框架,负责处理请求和...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.2整合包

    Struts2.1.6、Spring2.5.6和Hibernate3.3.2是三个在Java Web开发中广泛使用的开源框架,它们的整合为开发者提供了强大的后端支撑。这个整合包是为了解决企业在构建基于Java的Web应用程序时面临的复杂性问题,通过将...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合开发

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合开发 http://www.cnitblog.com/intrl/archive/2009/04/13/56322.aspx 这篇文章的源码由于他的上传的空间用户可能下载失败,作者相当牛而且具有奉献精神

    struts2.1.6+spring2.5.6

    Struts2.1.6与Spring2.5.6的整合是Java Web开发中的常见实践,主要用于构建MVC(Model-View-Controller)架构的应用程序。这个整合涉及到多个层次的知识点,包括Struts2和Spring的基本概念、它们各自的功能、以及...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1整合

    ### Struts2.1.6 + Spring2.5.6 + Hibernate3.3.1 整合 在本文中,我们将详细介绍如何将Struts2.1.6、Spring2.5.6以及Hibernate3.3.1进行整合,并构建一个简单的MVC应用。通过这个过程,读者将了解到这三种框架的...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解

    在深入探讨Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解的实现细节之前,我们先回顾一下这三个框架的基本概念及其在JavaEE企业级开发中的作用。 ### Struts2框架 Struts2是一个开源的Web应用框架,它遵循MVC...

    Struts2.1.6-Spring2.5.6-Hibernate3.3.2

    Struts2.1.6、Spring2.5.6和Hibernate3.3.2是三个在Java Web开发中广泛使用的开源框架,它们分别是MVC框架、IoC/DI容器和对象关系映射(ORM)框架的代表。这些框架的组合在当时是非常流行的,用于构建高效、可扩展和...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合常见错误

    在使用Struts2.1.6、Spring2.5.6与Hibernate3.3.1进行框架整合时,开发者经常会遇到一些常见的问题。这些问题可能会导致程序无法正常运行或出现异常行为。下面我们将针对这些常见错误进行详细的分析,并提供可能的...

    Struts2.1.6 +Spring2.5.6 + Hibernate3.3.2整合包

    Struts2.1.6、Spring2.5.6和Hibernate3.3.2是Java Web开发中的三个重要框架,它们常被组合使用,形成所谓的"S2SH"集成框架,以实现MVC(模型-视图-控制器)架构,提供企业级应用的高效能和可扩展性。这里我们将详细...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解是一个关于Java EE企业级开发的经典教程,重点介绍了如何整合SSH(Struts2、Spring、Hibernate)三大框架,并利用注解进行开发。在这个教程中,作者“大象”...

    Struts2.1.6 + Spring 2.5.6 + Hibernate 3.3 整合实例

    Struts2.1.6、Spring 2.5.6 和 Hibernate 3.3 是经典的Java Web开发框架组合,常被称为S2SH。这个整合实例是基于这些框架实现了一个基本的CRUD(创建、读取、更新、删除)功能。下面我们将详细探讨这三个框架以及...

    struts2.1.6 - spring2.5.6 - hibernate3.3.1 - oracle10g增删改查

    这个是由:struts2.1.6 - spring2.5.6 - hibernate3.3.1 - oracle10g 写的简单的增删改查功能,希望给有用的人,由于reg注册实现4个功能,所以login就没有写登录的功能了。由于小弟需要点分,所以只设置了2分,谢谢...

    Struts2.1.6_Spring2.5.6_Hibernate3.3.2.jar包

    Struts2.1.6_Spring2.5.6_Hibernate3.3.2.jar 包是一个集成的软件开发工具,包含三个核心的Java企业级框架:Struts2、Spring和Hibernate。这些框架的组合,通常称为SSH(Struts、Spring、Hibernate),是Java Web...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)

    在这个全注解实例中,我们将深入理解如何利用Struts2.1.6、Spring2.5.6和Hibernate3.3.1构建应用程序,避免传统的XML配置文件,转而采用注解方式来提高开发效率。 **开发环境**: - JDK 1.6.0_18 - Eclipse 3.2.1 -...

    Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2+json+junit4所有的jar包大集合

    Struts2.1.6、Spring2.5.6、Hibernate3.3.2、JSON 和 JUnit4 是五个在Java开发中至关重要的组件,它们共同构建了一个强大的企业级应用框架。下面将分别介绍这些技术及其集成应用的重要性。 **Struts2.1.6** 是一个...

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2是经典的Java Web开发框架组合,常被称为SSH。这三个框架协同工作,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,使得企业级应用的开发更加高效和模块化。 Struts...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(含JAR包)

    Struts2.1.6、Spring2.5.6和Hibernate3.3.1是Java Web开发中的三个重要框架,合称为SSH(Struts2、Spring、Hibernate)。这个全注解实例详解旨在帮助开发者理解如何在不使用XML配置的情况下,通过注解实现这三大框架...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例

    在Spring2.5.6中,`spring-context`、`spring-beans`、`spring-aop`等核心模块是基础,`struts2-spring-plugin`则是Struts2与Spring整合的关键,确保Action类能在Spring容器中被管理。 **Hibernate**作为持久层框架...

Global site tag (gtag.js) - Google Analytics