SSH框架整合2

===========================================web.xml===================================================
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:spring.xml</param-value>
    </context-param>
    <!--配置监听器-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--配置OpenSessionInView,需要配置在struts过滤器之前,否则会被过滤掉-->
    <filter>
        <filter-name>openSessionInView</filter-name>
        <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>openSessionInView</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- Struts核心过滤器 -->
    <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>
</web-app>
=================================================spring.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:context="http://www.springframework.org/schema/context"       xmlns:tx="http://www.springframework.org/schema/tx"       xsi:schemaLocation="http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop.xsd        http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd">

<!--开启注解-->    <context:annotation-config/>    <!--告知spring要去哪个包找注解-->    <context:component-scan base-package="com.ibeifeng.ssh"/>    <aop:aspectj-autoproxy/>

<bean name="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">        <!--配置数据库信息-->        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>        <property name="url" value="jdbc:mysql://localhost:3306/houserent"/>        <property name="username" value="root"/>        <property name="password" value="123456"/>    </bean>

<!--配置session信息-->    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">        <property name="dataSource" ref="myDataSource"/>        <!--由于这里我们使用的是注解的方式得到属性,因此使用packagesToScan,        若在hibernate中使用hibernate.cfg.xml则在此处就使用mappingResources,        作用是指定从哪个包中查找注解的model-->        <property name="packagesToScan">            <value>com.ssh.model</value>        </property>        <!--配置hibernate属性-->        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>                <prop key="hibernate.hbm2ddl.auto">update</prop>                <prop key="hibernate.show_sql">true</prop>            </props>        </property>    </bean>

<bean id="txManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">        <!--注入sessionFactory-->        <property name="sessionFactory" ref="sessionFactory"/>    </bean>

<!--配置事务增强,以及哪些方法使用什么样的规则-->    <tx:advice id="txAdvice" transaction-manager="txManager">        <tx:attributes>            <!--*号表示所有的方法都加入事务-->            <tx:method name="*" propagation="REQUIRED"/>        </tx:attributes>    </tx:advice>

<!--spring事务的实现是基于AOP方式-->    <aop:config>        <!--定义切入点-->        <aop:pointcut id="allMethod" expression="execution(* com.ssh.dao.*.*(..))"/>        <aop:advisor advice-ref="txAdvice" pointcut-ref="allMethod"/>    </aop:config></beans>

============================================struts.xml=================================================
<?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.devMode" value="true"/>    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>    <package name="default" extends="struts-default">

<!--使用通配符-->        <action name="*_*" class="{1}Controller" method="{2}">            <result name="success">{2}.jsp</result>        </action>    </package></struts>

===================================IBaseDao.java()(BaseDao的接口)=======================================
package com.ssh.dao;

public interface IBaseDao<T> {    public void add(T t);    public void update(T t);    public void delete(int id);    public T load(int id);//    public List<T> list();}

==============================BaseDao.java()(BaseDao实现类)===========================================
package com.ssh.dao;

import org.hibernate.SessionFactory;import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import javax.annotation.Resource;import java.lang.reflect.ParameterizedType;

public class BaseDao<T> extends HibernateDaoSupport implements IBaseDao<T> {    /*BaseDao继承了HibernateDaoSupport,在HibernateDaoSupport中存在setSessionFactory方法可以直接    设置SessionFactory,后面就不需要每次都去获取SessionFactory    * */    @Resource(name = "sessionFactory")    private void setSuperSessionFactory(SessionFactory sessionFactory){        super.setSessionFactory(sessionFactory);    }

@Override    public void add(T t) {        this.getHibernateTemplate().save(t);    }

@Override    public void update(T t) {        this.getHibernateTemplate().update(t);    }

@Override    public void delete(int id) {        this.getHibernateTemplate().delete(id);    }

public Class<T> getCla(){        return (Class<T>)(((ParameterizedType)                (this.getClass().getGenericSuperclass()))                .getActualTypeArguments()[0]);    }

@Override    public T load(int id) {        /*由于在load()方法中需要给一个类作为参数,但现在还不知道具体是哪个类,因此需要        一个得到类的方法getCla()         */        //在这里若使用load()方法需要在web.xml里面配置OpenSessionInView的过滤器,若使用get()则不要        //return this.getHibernateTemplate().get(getCla(),id);        return this.getHibernateTemplate().load(getCla(),id);    }

/*由于在Hibernate5中find()方法以及被取消,所以该段注释掉    @Override    public List<T> list() {        return (List<T>)this.getHibernateTemplate().find("Group");    }
*/
}

===============================IGroupDao.java()(GroupDao的接口)====================================
package com.ssh.dao;

import com.ssh.model.Group;

public interface IGroupDao extends IBaseDao<Group>{}

================================GroupDao.java()(GroupDao实现类)========================================
package com.ssh.dao;

import com.ssh.model.Group;import org.springframework.stereotype.Repository;

@Repositorypublic class GroupDao extends BaseDao<Group> implements IGroupDao {

}

======================================IEmpDao.java()(EmpDao接口)==========================================
package com.ssh.dao;

import com.ssh.model.Employee;

public interface IEmpDao extends IBaseDao<Employee> {}

========================================EmpDao.java()(EmpDao实现类)==========================================
package com.ssh.dao;

import com.ssh.model.Employee;

public class EmpDao extends BaseDao<Employee> implements IEmpDao {}

==================================IGroupService.java()(GroupService接口)=================================

package com.ssh.service;

import com.ssh.model.Group;

public interface IGroupService {    public void save(Group group);    public Group load(int id);    //GroupService需要使用哪些方法只要在接口中添加即可}

============================GroupService.java()(GroupService实现类)======================================

package com.ssh.service;

import com.ssh.dao.IGroupDao;import com.ssh.model.Group;import org.springframework.stereotype.Service;import javax.annotation.Resource;

@Servicepublic class GroupService implements IGroupService {    private IGroupDao groupDao;

@Resource    public void setGroupDao(IGroupDao groupDao) {        this.groupDao = groupDao;    }

@Override    public void save(Group group) {        groupDao.add(group);    }

@Override    public Group load(int id) {        return null;    }}

=======================GroupController.java()(GroupController实现类)======================================

package com.ssh.controller;

import com.ssh.model.Group;import com.ssh.service.IGroupService;import org.springframework.stereotype.Controller;import javax.annotation.Resource;

@Controller("groupController")public class GroupController {    private IGroupService groupService;    //需要保存哪些类的数据,就在这里定义哪些类来接收数据    private Group group;

public Group getGroup() {        return group;    }

public void setGroup(Group group) {        this.group = group;    }

@Resource    public void setGroupService(IGroupService groupService) {        this.groupService = groupService;    }

public String add(){        groupService.save(group);        return "success";    }}

===================================Group.java()(Group实现类)==============================================

package com.ssh.model;

import org.hibernate.annotations.GenericGenerator;import javax.persistence.*;

@Entity@Table(name="t_group")public class Group {    private int id;    private String name;

public Group(){}

public Group(int id, String name) {        this.id = id;        this.name = name;    }

@Id    @GenericGenerator(name = "increment",strategy = "increment")    @GeneratedValue(generator = "increment")    public int getId() {        return id;    }

public void setId(int id) {        this.id = id;    }

@Column(name="name")    public String getName() {        return name;    }

public void setName(String name) {        this.name = name;    }

@Override    public String toString() {        return "Group{" +                "id=" + id +                ", name=‘" + name + ‘\‘‘ +                ‘}‘;    }}

=================================Employee.java()(Employee实现类)==========================================

package com.ssh.model;

import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

@Entity@Table(name = "t_emp")public class Employee {    private int id;    private String name;    private String salary;

public Employee(){}

public Employee(int id, String name, String salary) {        this.id = id;        this.name = name;        this.salary = salary;    }

@Id    @GenericGenerator(name = "increment", strategy = "increment")    @GeneratedValue(generator = "increment")    public int getId() {        return id;    }

public void setId(int id) {        this.id = id;    }

@Column(name = "name")    public String getName() {        return name;    }

public void setName(String name) {        this.name = name;    }

@Column(name = "salary")    public String getSalary() {        return salary;    }

public void setSalary(String salary) {        this.salary = salary;    }

@Override    public String toString() {        return "Employee{" +                "id=" + id +                ", name=‘" + name + ‘\‘‘ +                ", salary=‘" + salary + ‘\‘‘ +                ‘}‘;    }}

==================================add.jsp(路径为:/web/group/add.jsp)==========================================

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>add</title></head><body><form method="post" action="group_add">    组名:<input type="text" name="group.name">    <input type="submit" value="保存"></form></body></html>


原文地址:https://www.cnblogs.com/helloworldlx/p/9215911.html

时间: 2024-08-01 21:15:20

SSH框架整合2的相关文章

【课程分享】jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自动化(VSS、operamasks-UI框架)

我的qq是2059055336,对这个课程有兴趣的可以加我qq联系. 课程下载地址:链接:http://pan.baidu.com/share/link?shareid=395438909&uk=3611155194 密码:mlvl 课程下载地址:http://www.kuaipan.cn/file/id_192202874577496484.htm?source=1 一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景 jQuery 2.0 正式版发布,不在支持 IE 6/7/8

SSH框架整合过程总结

---------------------siwuxie095 SSH 框架整合过程总结 (一)导入相关 jar 包(共 41 个) 1.导入 Spring 的核心 jar 包和日志相关的 jar 包(6 个) Commons Logging 下载链接: http://commons.apache.org/proper/commons-logging/download_logging.cgi LOG4J 下载链接: https://www.apache.org/dist/logging/log4

SSH框架整合的其它方式

--------------------siwuxie095 SSH 框架整合的其它方式 1.主要是整合 Spring 框架和 Hibernate 框架时,可以不写 Hibernate 核心配置文件:hibernate.cfg.xml 2.把Hibernate 核心配置文件中的配置全都转移到 Spring 核心配置文件中 3.具体实现 applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?&g

SSH框架整合

ssh框架整合步骤如下 提示:myeclipse环境.工程环境.tomcat环境的jdk保持一致 1.新建一个工程,把工程的编码为utf-8 2.把jsp的编码形式改成utf-8 3.把jar包放入到lib下 4.建立三个src folder src 存放源代码 config 存放配置文件 hibernate 存放hibernate的配置文件 spring 存放spring的配置文件 struts 存放struts的配置文件 struts.xml test 存放单元测试 5.在src下建立包 c

jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自动化(VSS、operamasks-UI框架)

我的qq是2059055336,对这个课程有兴趣的可以加我qq联系. 一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景 jQuery 2.0 正式版发布,不在支持 IE 6/7/8 浏览器.因此该版本更小.更快.       为了提高现代社会人们的办公效率,满足人们自动化办公的需要,我们开发了这套稳定可靠.操作方便.安全有效的MyOffice系统     1.2.课程内容简介       本课程全面详细的介绍jQuery2.0以及OA办公自动化系统的开发流程.其中重点详细的介绍

用myecplise自带工具实现对SSH框架整合

之前搭建ssh环境的,都是先要引入一堆jar包,一下没整明白就会出现jar包冲突的问题,在这里,我们使用myecplise自带的工具,实现jar包的依赖和配置文件的生成. 我们用的到的工具是:myecplise2014 第一步:新建一个web project 第一步:添加项目所依赖的jar包 1.添加struts所依赖的jar包 完成后,在src目录下可以发现struts.xml 2.添加spring所依赖的jar包 完成后,可以在src目录下发现applicationContext.xml 3

dwr与ssh框架整合教程

(1)dwr与ssh框架整合教程dwr框架介绍. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开 发人员开发包含AJAX技术的网站.它可以允许 在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.它包含两个主要的部 分:允许JavaScript从WEB服务器上一 个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站 开发人员轻松地利用获取的数

ssh框架整合实例

MyEclipse开发SSH(Struts+Spring+Hibernate)入门 Spring技术   2009-02-03 15:59   阅读328   评论0 字号: 大大  中中  小小 2008-01-31 01:31 (本文参考自 oksonic 的"Struts+Spring+Hibernate练习(完整)") 源码下载:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2857703 注意:这个实例要加入

SSH框架整合总结

SSH 框架为 Struts + Spring + Hibernate 的一个集成框架,是目前较流行的一种 web 应用程序开源框架. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate.具

J2EE进阶(十一)SSH框架整合常见问题汇总(二)

J2EE进阶(十一)SSH框架整合常见问题汇总(二) 问题8 java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean      解决 数据库中userdetail表的映射文件如下,可见xb字段数据类型为boolean类型,而自己在userdetail模型类中定义的类型为String类型.为此可以得出这样的结论.模型类中的数据及类型必须与数据表映射文件中的字段信息保持一致.应该可以同时生成