`
ll_feng
  • 浏览: 391142 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用maven整合struts+spring+hibernate之三 加入框架支持

阅读更多
创建完web工程之后,一般我们就可以开始开发了。所以,这一节我们需要为这个web工程加入j2ee框架的支持。

这里其实不太好分清楚先加哪后加哪,因为系统框架是需要整体运行的,相互的关系很紧密,比如我只加入struts2.那么在运行时会报错。因为struts2缺省是用spring来做容器的。(当然也可以修改,但这里不是不作讨论)。

一、依赖包
<dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.0.9</version>
    </dependency>
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-codebehind-plugin</artifactId>
      <version>2.0.9</version>
    </dependency>
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-spring-plugin</artifactId>
      <version>2.0.9</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-hibernate3</artifactId>
      <version>2.0.6</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate</artifactId>
      <version>3.2.5.ga</version>
    </dependency>
    <dependency>
      <groupId>javax.persistence</groupId>
      <artifactId>persistence-api</artifactId>
      <version>1.0</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.0.5</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-annotations</artifactId>
      <version>3.3.0.ga</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-commons-annotations</artifactId>
      <version>3.3.0.ga</version>
    </dependency>


以上不止加入struts支持,也加入了spring和hibernate及jpa的支持。其实这些只是主包,还有不少依赖包会自动加入到maven的仓库里去的。

二、配置struts
下面配置struts2,涉及到几个文件
1、在web.xml加入以下内容:
  <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>


2、增加struts.xml文件
这个文件主要配置struts的action及拦截器等,可以有多个(命名为struts-*.xml)
位置在src\main\resources下,内容大致如下:
<?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>
    <!-- Constants -->
    <constant name="struts.devMode" value="false"/>
    <constant name="struts.i18n.encoding" value="UTF-8"/>
    <constant name="struts.action.extension" value="html"/>
    <constant name="struts.objectFactory" value="spring"/>
    <constant name="struts.custom.i18n.resources" value="ApplicationResources,errors"/>
    <constant name="struts.multipart.maxSize" value="2097152"/>
    <constant name="struts.ui.theme" value="css_xhtml"/>
    <constant name="struts.codebehind.pathPrefix" value="/WEB-INF/pages/"/>
    <constant name="struts.enable.SlashesInActionNames" value="true"/>

    <!-- Configuration for the default package. -->
    <package name="default" extends="struts-default">
        <interceptors>
            <!-- Copied from struts-default.xml and changed validation exclude methods -->
            <interceptor-stack name="defaultStack">
                <interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servlet-config"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="profiling"/>
                <interceptor-ref name="scoped-model-driven"/>
                <interceptor-ref name="model-driven"/>
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="static-params"/>
                <interceptor-ref name="params">
                    <param name="excludeParams">dojo\..*</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">cancel,execute,delete,edit,list</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
            </interceptor-stack>
            <interceptor-stack name="fileUploadStack">
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="defaultStack"/>
            </interceptor-stack>
        </interceptors>

        <global-results>
            <result name="mainMenu" type="redirect-action">mainMenu</result>
            <result name="dataAccessFailure">/WEB-INF/pages/dataAccessFailure.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="org.springframework.dao.DataAccessException" result="dataAccessFailure"/>
        </global-exception-mappings>
	<action name="addUser" class="userAction" method="save">
			<result name="success">/WEB-INF/pages/user/list.jsp</result>
			<result name="input">/WEB-INF/pages/user/form.jsp</result>
		</action>
		<action name="toAddUser">
			<result>/WEB-INF/pages/user/form.jsp</result>
		</action>
        <!-- Add additional actions here -->
    </package>

</struts>


3、添加国际化支持
也就是加几个资源文件主要是:
ApplicationResources.properties
ApplicationResources_zh_CN.properties
这个就不我说了,文件位置在src\main\resources下

4、添加action
以用户为例UserAction.java:

package net.apex.framework.web.action;

import net.apex.framework.model.User;
import com.opensymphony.xwork2.ActionSupport;

/**
 * @author Administrator
 *
 */
public class UserAction extends ActionSupport {
	private User user;

	public User getUser() {
		return user;
	}


	public void setUser(User user) {
		this.user = user;
	}

	public String save(){
		System.out.println(user.getName());
		return SUCCESS;
	}
	
}

struts配置完毕

三、配置spring
1、web.xml
加入以下代码:
<!--配置spring上下文(可选)-->
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>

<!--加入spring支持-->
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


2、添加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"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost/test" />
        <property name="username" value="root" />
        <property name="password" value="1234" />
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
        <property name="hibernateProperties">
        	<props>
        		<prop key="hibernate.dialect">${hibernate.dialect}</prop>
        		<prop key="hibernate.cache.use_second_level_cache">false</prop>
        		<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
        		<prop key="show_sql">true</prop>
        	</props>
        	            <!-- Turn batching off for better error messages under PostgreSQL -->
            <!-- hibernate.jdbc.batch_size=0 -->
        </property>
    </bean>

    <bean id="userAction" scope="prototype" class="net.apex.framework.web.action.UserAction"></bean>
</beans>

这样struts、spring和hibernate框架都加入到我们的工程里了。
在工程里添加一个jsp页面让它调用UserAction就可以跑起来了。。。
分享到:
评论

相关推荐

    用maven整合struts+spring+hibernate

    "用maven整合struts+spring+hibernate"这个主题,就是关于如何将这三大核心框架——Struts、Spring和Hibernate——集成到一个项目中的实践教程。Struts提供了MVC(Model-View-Controller)架构,Spring是全面的后端...

    maven(springmvc+spring+hibernate)

    SSH整合指的是Spring、Struts和Hibernate这三大Java开源框架的集成应用。这三大框架分别负责控制层、视图层和持久层,它们的结合能够构建出功能强大的企业级Web应用程序。 Spring框架是整个SSH整合的核心,它提供了...

    Struts2+Spring3+Hibernate4+Maven+EasyUI+mysql 源代码整合入门

    Struts2+Spring3+Hibernate4+Maven+EasyUI+mysql +jar包 源代码 测试可运行 的 带mysql数据库 改自孙宇的实例 EasyUI 实现 日历 运行,请先注册 jar包在target\sshe-0.0.1-SNAPSHOT\WEB-INF\lib

    eclipse搭建(Struts2.5+Spring5.0+hibernate5.2)整合框架Demo实例

    本教程将详细介绍如何使用Eclipse IDE搭建一个基于Struts2.5、Spring5.0和Hibernate5.2的整合框架,提供一个可运行的Demo实例。这个组合是Java企业级开发中常见的技术栈,它们各自负责不同的职责:Struts2作为前端...

    maven整合spring+hibernate+struts2

    本项目“maven整合spring+hibernate+struts2”就是一个典型的Java Web开发模式,它利用Maven作为项目管理工具,Spring作为核心框架,Hibernate作为持久层解决方案,Struts2作为表现层控制器。以下将详细阐述这些技术...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门012

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的开源框架和技术,它们在构建高效、可维护的企业级应用程序方面发挥着关键作用。本篇将详细介绍这些技术及其整合入门的知识点。 **Struts2** 是...

    idea14+maven+struts+spring+mybatis框架

    标题 "idea14+maven+struts+spring+mybatis框架" 描述的是一个使用IntelliJ IDEA 14集成开发环境,结合Maven构建工具,以及SSH(Struts、Spring、Hibernate)经典企业级开发框架,并融入MyBatis持久层框架的项目。...

    图书管理系统spring+struts+hibernate

    library_ssh2可能是一个包含系统源代码的压缩文件,"ssh2"可能表示系统使用了Struts2、Spring2和Hibernate2这三个框架的早期版本。这个文件中应包含所有必要的Java源代码、配置文件、Web应用相关的资源(如JSP页面、...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频002

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的技术栈,它们各自在应用开发中扮演着重要的角色。这个视频教程应该是针对初学者,旨在介绍如何将这些技术整合到一起,构建一个完整的Web应用程序...

    ssi(struts+spring+maven+mybatis)整合

    **SSI(Struts + Spring + Maven + MyBatis)整合详解** 在现代Java Web开发中,集成多种框架来实现高效、灵活的应用程序架构是常见的做法。`SSI`整合,即Struts、Spring、Maven和MyBatis的组合,旨在提供一个强大...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    Struts2.1、Spring2.5和Hibernate3.3是经典的Java企业级开发框架组合,它们各自在应用程序的不同层面提供了强大的支持。本篇将详细阐述这三个组件的整合过程,以及各自的核心特性。 首先,Struts2是一个基于MVC设计...

    Struts2+Spring3+Hibernate4+Maven+EasyUI

    Struts2+Spring3+Hibernate4+Maven+EasyUI 是一个常见的Java Web开发组合,它们各自扮演着关键的角色,构建了一个高效、模块化的应用程序架构。这个组合在企业级应用中广泛使用,尤其是在数据管理、业务逻辑处理和...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合视频教程源码

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的开源框架和技术,它们在构建高效、可维护的企业级应用中发挥着关键作用。本教程源码结合了这些技术,旨在帮助开发者理解和掌握它们的整合与应用...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    标题 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发" 指向的是一个关于如何在集成开发环境Eclipse与MyEclipse中搭建Struts、Spring和Hibernate(SSH)框架的教程。SSH是Java Web开发中常用的一个...

    Struts2.3.28+spring4.1.6+hibernate4.3.8整合总结(注解)

    Struts2.3.28、Spring4.1.6和Hibernate4.3.8是三个经典的Java EE框架,它们的整合是企业级应用开发中常见的技术栈,通常被称为S2SH。在这个版本的整合中,注解的使用极大地简化了配置过程,使得开发更加高效。以下是...

    Maven下搭建Struts2+spring+hibernate框架

    SSH(Struts2、Spring、Hibernate)是一个常见的Java开发框架组合,用于构建基于Maven的Web应用程序。Maven是一个项目管理工具,它可以帮助开发者管理和构建项目,而SSH框架则提供了模型-视图-控制器(MVC)架构的...

    基于Maven,Struts2, Spring,Hibernate全注释的开发框架

    使用Maven3.0.5, Struts2, Spring, Hibernate3, annotation实现零配置的开发框架.里面有详细的开发指导文档, 后台用googlecode的 hibernate-generic-dao - Generic DAO 和 Search的代码,完全进行封装. 由于Generic ...

    Struts1.2+Spring1.2+HIbernate3.1整合示例代码

    Struts1.2+Spring1.2+HIbernate3.1整合一个用户登录的例子,原以为这个很简单没有必要上传上去,但问我的人太多了,所以就发布上来了,我随后会在博客里做详细的介绍,请大家继续关注我的博客.

    Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行源码

    Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行工程源码,在tomcat7上运行也成功测试了,注意:我工程文件是用myeclipse2013开发的,你需要导入自己ide的时候,会有兼容性问题:最好阁下是自己新建一个maven...

    maven3.3.9+struts2.5.5+spring4.3.3+hibernate5.2.4框架搭建实例

    maven3.3.9+struts2.5.5+spring4.3.3+hibernate5.2.4框架搭建实例 ssh这么主流,但是在网上搜索的资料拿来用的时候经常出错或者是没有一个完整的搭建环境,这里给大家提供一个非常完整,而且基础的实例,本人是在...

Global site tag (gtag.js) - Google Analytics