zoukankan      html  css  js  c++  java
  • SSH框架整合(全注解)

    全部jar包

     

     目录结构

     配置案例

    package cn.yzu.Tbook.action;
    
    import javax.annotation.Resource;
    import org.apache.struts2.convention.annotation.Action;
    import org.apache.struts2.convention.annotation.Namespace;
    import org.apache.struts2.convention.annotation.Results;
    import org.apache.struts2.convention.annotation.Result;
    
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Controller;
    
    import cn.yzu.Tbook.model.Book;
    import cn.yzu.Tbook.service.BookService;
    
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    @Namespace("/")
    @Controller
    @Scope("prototype")
    @Results( { 
         @Result(name = "book_add", location = "/WEB-INF/jsp/success.jsp"), 
         @Result(name = "regist",location = "/WEB-INF/jsp/O2Oautohome.jsp"),
        })
    public class BookAction extends ActionSupport implements ModelDriven<Book>{
        private Book book = new Book();
        public Book getModel() {
            return book;
        }
        private BookService bookService;
        @Resource
        public void setBookService(BookService bookService) {
            this.bookService = bookService;
        }
    
        @Action("book_add")
        public String add(){
            System.out.println("web层添加图书...");
            bookService.add(book);
            return "book_add";
        }
    }
    BookAction
    package cn.yzu.Tbook.dao;
    
    import javax.annotation.Resource;
    
    import org.hibernate.SessionFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.orm.hibernate3.HibernateTemplate;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    import org.springframework.stereotype.Repository;
    
    import cn.yzu.Tbook.model.Book;
    
    @Repository
    public class BookDao extends HibernateDaoSupport{
    
        @Resource
        public void setSuperSessionFactory(SessionFactory sessionFactory) {
            super.setSessionFactory(sessionFactory);
        }
        
        public void save(Book book) {
            System.out.println("DAO层的保存图书...");
            this.getHibernateTemplate().save(book);
        }
    
    }
    BookDao
    package cn.yzu.Tbook.model;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="book")
    public class Book {
        @Id
        @GeneratedValue
        private Integer id;
        private String name;
        private Double price;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Double getPrice() {
            return price;
        }
        public void setPrice(Double price) {
            this.price = price;
        }
        @Override
        public String toString() {
            return "Book [id=" + id + ", name=" + name + ", price=" + price + "]";
        }
        
    }
    Book
    package cn.yzu.Tbook.service;
    
    import javax.annotation.Resource;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import cn.yzu.Tbook.dao.BookDao;
    import cn.yzu.Tbook.model.Book;
    @Transactional
    @Service
    public class BookService {
        private BookDao bookDao;
        @Resource
        public void setBookDao(BookDao bookDao) {
            this.bookDao = bookDao;
        }
    
        public void add(Book book) {
            System.out.println("Service层的添加图书...");
            bookDao.save(book);
        }
    
    }
    BookService
    <?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:context="http://www.springframework.org/schema/context"
        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.xsd
        http://www.springframework.org/schema/context    http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop    http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx     http://www.springframework.org/schema/tx/spring-tx.xsd">
        <!-- 组件扫描 -->
        <context:component-scan base-package="cn.yzu.*.*" />
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            <!-- hibernate实体类映射扫描 -->
            <property name="packagesToScan">
                <list>
                    <value>cn.yzu.*.model</value>
                </list>
            </property>
            <property name="dataSource" ref="dataSource"/>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                    <prop key="hibernate.show_sql">true</prop>
                    <prop key="hibernate.format_sql">true</prop>
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
                    <prop key="hibernate.connection.autocommit">false</prop>
                </props>
            </property>
        </bean>
        <context:property-placeholder location="classpath:jdbc.properties"/>
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driver}"/>
            <property name="jdbcUrl" value="${jdbc.url}"/>
            <property name="user" value="${jdbc.user}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
        <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
        <tx:annotation-driven transaction-manager="transactionManager"/>
    </beans>
    applicationContext.xml
    jdbc.driver = com.mysql.jdbc.Driver
    jdbc.url = jdbc:mysql:///ssh1
    jdbc.user = root
    jdbc.password =123
    jdbc.properties
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'success.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
    
      </head>
      
      <body>
        保存成功 <br>
      </body>
    </html>
    success.jsp
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     <!-- 配置Spring的监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 指定Spring框架的配置文件所在的位置 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <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>
    web.xml
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>添加图书</h1>
    <form action="book_add" method="post">
        图书名称:<input type="text" name="name"><br/>
        图书价格:<input type="text" name="price"><br/>
        <input type="submit" value="添加图书">
    </form>
    </body>
    </html>
    index.jsp
  • 相关阅读:
    Angle Beats Gym
    MUV LUV UNLIMITED Gym
    Balanced Diet Gym
    数位dp HDU
    数位dp CodeForces
    数位dp HDU
    有依赖的背包 洛谷P1064 金明的预算方案 (不是分组背包)
    多重背包+二进制拆分 POJ1014
    单调队列优化dp 入门 洛谷P2627 修剪草坪
    01背包 + 排序 (记忆化搜索) 骄傲的商人(HDU
  • 原文地址:https://www.cnblogs.com/fengmingyue/p/6212823.html
Copyright © 2011-2022 走看看