zoukankan      html  css  js  c++  java
  • SSM

    今天内容安排

    1:复习mybatis

    2:复习springMVC

    3:springMVC+spring+mybatis组合起来,搭建一个web应用开发的框架

    4:用户管理系统,针对用户的CRUD操作,前后端交互

    1. mybatis复习

    1. springmvc复习

    spring-mvc

        web.xml配置DispatcherServlet

        {servlet-name}-servlet.xml(自己的配置文件)

            扫描包<context:component-scan base-package="cn.itcast.mvc.controller"/>

            注解驱动(配置了handlerMapping,HandlerAdatper)

                <mvc:annotation-driven/>

            视图解析器(org.springframework.web.servlet.view.InternalResourceViewResolver)

                前缀(prefix)

                后缀(suffix)

                返回视图的形式===前缀+实体名称+后缀

            需要文件上传--则配置文件上传代码

            如果有自定义拦截器,需要进行配置 <mvc:interceptors>

        注解的使用

            类的注解

                @Controller 表示当前类是一个Controller

                @RequestMapping(value="访问路径")

            方法的注解

                @RequestMapping(value="路径",method="限定请求方法",params="限定请求参数")

                @ResponseBody --- 表示返回的对象自动转换成json

                @ResponseStatus设置相应的状体码(了解)

            方法参数的注解

                @RequestBody --- 接受json格式数据 可以是集合,可以是单个对象

                @PathVariable()----接受路径中的占位符 /test/{itemid} 可以接受itemid

                @RequestParam(value="传递参数的key'",required=是否必须传递该参数,defaultValue:如果没有传递参数的默认值) 接受请求参数

                @CookieValue(value="cookieName") 可以直接从指定的cookie中获取数据

        一些对象的接受

            serlvet的内置对象(直接在方法中定义参数就可以获取到)

                request

                resposne

                session

            pojo对象

                直接定义该对象就可以使用

            集合

                重新去定义一个对象,把集合变成对象中的一个属性,在方法的参数上,书写这个对象

        拦截器

            1、实现HandlerInterceptor

            2、完成指定三个方法

                preHandle(前置方法,返回类型,boolean,true继续向后执行,false,结束执行

                后置方法:postHandle(执行完Handler之后)

                完成方法afterCompletion() 如果该类的preHandler返回是true的时候,会执行

    web.xml配置DispatcherServlet

    {servlet-name}-servlet.xml(自己的配置文件)

        扫描包<context:component-scan base-package="cn.itcast.mvc.controller"/>

        注解驱动(配置了handlerMapping,HandlerAdatper)

            <mvc:annotation-driven/>

        视图解析器(org.springframework.web.servlet.view.InternalResourceViewResolver)

            前缀(prefix)

            后缀(suffix)

            返回视图的形式===前缀+实体名称+后缀

        需要文件上传--则配置文件上传代码

        如果有自定义拦截器,需要进行配置 <mvc:interceptors>

    注解的使用

        类的注解

            @Controller 表示当前类是一个Controller

            @RequestMapping(value="访问路径")

        方法的注解

            @RequestMapping(value="路径",method="限定请求方法",params="限定请求参数")

            @ResponseBody --- 表示返回的对象自动转换成json

            @ResponseStatus设置相应的状体码(了解)

        方法参数的注解

            @RequestBody --- 接受json格式数据 可以是集合,可以是单个对象

            @PathVariable()----接受路径中的占位符 /test/{itemid} 可以接受itemid

            @RequestParam(value="传递参数的key'",required=是否必须传递该参数,defaultValue:如果没有传递参数的默认值) 接受请求参数

            @CookieValue(value="cookieName") 可以直接从指定的cookie中获取数据

    一些对象的接受

        serlvet的内置对象(直接在方法中定义参数就可以获取到)

            request

            resposne

            session

        pojo对象

            直接定义该对象就可以使用

        集合

            重新去定义一个对象,把集合变成对象中的一个属性,在方法的参数上,书写这个对象

    拦截器

        1、实现HandlerInterceptor

        2、完成指定三个方法

            preHandle(前置方法,返回类型,boolean,true继续向后执行,false,结束执行

            后置方法:postHandle(执行完Handler之后)

            完成方法afterCompletion() 如果该类的preHandler返回是true的时候,会执行

    1. ssm综合应用

    1. 创建工程---环境整理

      1. 使用技术

    SpringMVC+Spring + Mybatis

    数据库:mysql

    前端:Jquery EasyUI

    1. 配置文件的编写

      1. spring配置文件

    约束:

     

    <beans xmlns="http://www.springframework.org/schema/beans"

        xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

        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-4.0.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

    1. 事务配置

    1. spring-mvc配置文件

    1. spring-mybatis配置文件

    1. mybatis-config配置

    1. web.xml

    1. 导入相关js

    1. 解决静态资源被拦截

    1. 查询用户列表

      1. controller

    1. 定义EasyUIResult

    作用:定义easyui中的分页信息的bean对象,或者vo对象

    package cn.itcast.usermanage.pojo;

     

    import java.util.List;

     

    public class EasyUIResult<?> {

     

     

    private Integer total;

    private List<?> rows;

    public Integer getTotal() {

    return total;

    }

    public void setTotal(Integer total) {

    this.total = total;

    }

    public List<?> getRows() {

    return rows;

    }

    public void setRows(List<?> rows) {

    this.rows = rows;

    }

    }

    1. 编写userservice

    1. 编写userMapper

    1. 效果

    1. 访问路径方法合并

    之前进行页面跳转的时候,如果有多个页面,就需要有多个方法。

    借助于requetMapping(占位符的方式,传递一些数据,达到页面跳转的目的)

    /user/to/user-list

    可以取出user-list 这个内容, 作为视图的名字。 /web-inf/views/ user-list.jsp

     

    1. 导出excel

    1. controller的逻辑

    1. spring提供的excel视图实现

    1. 自定义excel 视图

    public class UserExcelView extends AbstractExcelView {

     

    /**

    * 以下完成视图的渲染

    */

    @Override

    protected void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook,

    HttpServletRequest request, HttpServletResponse response) throws Exception {

     

    // model对象中获取userList

    @SuppressWarnings("unchecked")

    List<User> userList = (List<User>) model.get("userList");

    // 创建Excelsheet

    HSSFSheet sheet = workbook.createSheet("会员列表");

     

    // 创建标题行

    HSSFRow header = sheet.createRow(0);

    header.createCell(0).setCellValue("ID");

    header.createCell(1).setCellValue("用户名");

    header.createCell(2).setCellValue("姓名");

    header.createCell(3).setCellValue("年龄");

    header.createCell(4).setCellValue("性别");

    header.createCell(5).setCellValue("出生日期");

    header.createCell(6).setCellValue("创建时间");

    header.createCell(7).setCellValue("更新时间");

     

    // 填充数据

    int rowNum = 1;

    for (User user : userList) {

    HSSFRow row = sheet.createRow(rowNum);

    row.createCell(0).setCellValue(user.getId());

    row.createCell(1).setCellValue(user.getUserName());

    row.createCell(2).setCellValue(user.getName());

    row.createCell(3).setCellValue(user.getAge());

    String sexStr;

    if (user.getSex() == 1) {

    sexStr = "";

    } else if (user.getSex() == 2) {

    sexStr = "";

    } else {

    sexStr = "未知";

    }

    row.createCell(4).setCellValue(sexStr);

    row.createCell(5).setCellValue(new DateTime(user.getBirthday()).toString(Constants.DATE));

    row.createCell(6).setCellValue(new DateTime(user.getCreated()).toString(Constants.DATE_TIME));

    row.createCell(7).setCellValue(new DateTime(user.getUpdated()).toString(Constants.DATE_TIME));

     

    rowNum++;

    }

     

    // 设置相应头信息,以附件形式下载并且指定文件名

    response.setHeader("Content-Disposition", "attachment;filename="

    + new String("会员列表.xls".getBytes(), "ISO-8859-1"));

    }

     

    }

    1. 定义视图对象到springmvc中

    1. 定义视图解析器(通过bean对象查找视图)

    注意:在SpringMVC中,如果定义多个视图解析器,需要指定每个视图解析的顺序。

    1. 添加用户的实现

    <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">

            INSERT INTO tb_user (

                    id,

                    user_name,

                    password,

                    name,

                    age,

                    sex,

                    birthday,

                    created,

                    updated

                )VALUES(

                    null,

                    #{userName},

                    #{password},

                    #{name},

                    #{age},

                    #{sex},

                    #{birthday},

                    NOW(),

                    NOW()

                );

        </insert>

    1. 日期对象的自动转换

    1. json转换的时候,忽略属性

    使用 @JsonIgnore 完成某个属性忽略,不会转换成json。

  • 相关阅读:
    password
    bzoj 1458: 士兵占领
    国家集训队2011 happiness
    cogs 2051. 王者之剑
    uva 10779 Collectors Problem
    [Jxoi2012]奇怪的道路
    天神下凡
    藏宝图
    黑红树
    愤怒的小鸟
  • 原文地址:https://www.cnblogs.com/beyondcj/p/6271184.html
Copyright © 2011-2022 走看看