• SpringMVC学习日志四


    一、回顾

      1.文件上传

        1.1引入fileupload的jar包

        1.2在springmvc的配置文件中引入CommonsMutilpartResolver文件上传解析器

        1.3在控制层在写入代码

      2.拦截器

        2.1创建一个类实现HandlerInterceptor接口

        2.2在springmvc配置文件中配置该拦截器

      3.数据校验

        3.1引入Hibernate-validatejar

        3.2在相应的实体类属性上加上校验注解

        3.3在控制层接受参数的地方加上 @Valid 如果参数不符合校验 把错误封装到BindingResult对象中

     二、restful风格

      1.请求地址http://localhost:8080/Springmvc-04/user/6

       2.控制层会根据你的请求方式调用不同的方法。

    package com.zhiyou100.klb.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.zhiyou100.klb.bean.Users;
    
    @Controller //等价于<bean class="com.zhiyou100.klb.annotation.MyController" />
    @RequestMapping("user")
    public class UsersController {
        //restFul ----> user/1
        //method:表示该方法处理get请求
        //1赋值给{uid}
        @RequestMapping(value="{uid}",method=RequestMethod.GET)//查询操作
        public String findById(@PathVariable("uid")int id) {
            System.out.println("=====" + id);
            /*int a = 10/0;*/ //测试异常处理
            return "index";
        }
        
        @RequestMapping(method=RequestMethod.POST)//添加操作
        public String insertUser(Users user) {
            System.out.println(user);
            return "redirect:login.jsp";
        }
        
    }

      3.put及delete提交方式

        1.web.xml文件中配置过滤器.

      <!-- 把post请求转化为put和delete请求,使用——method表示真正的提交方式 -->
      <filter>
             <filter-name>hiddenHttpMethodFilter</filter-name>
             <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>hiddenHttpMethodFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

        2.在控制层中

        //springmvc 提供了一个过滤器可以吧post请求转化为put和delete请求
        @RequestMapping(value="{id}",method=RequestMethod.PUT)//修改操作
        @ResponseBody
        public String update(@PathVariable int id,Users user) {
            System.out.println("id=" + id + "	" + user + "update");
            return "index";
        }

        3.页面

    三、springmvc进行异常处理

      1.局部处理

    @ExceptionHandler //当该类中发生异常时会由该方法来处理,局部处理
        public ModelAndView error(Exception e) {
            ModelAndView mv = new ModelAndView();
            mv.addObject("error", e);
            mv.setViewName("error");
            return mv;
        }

      2.定义一个全局异常类

    package com.zhiyou100.klb.controller;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.servlet.ModelAndView;
    
    @ControllerAdvice
    public class ErrorController {
    
        @ExceptionHandler //当该类中发生异常时会由该方法来处理,全局处理
        public ModelAndView error(Exception e) {
            ModelAndView mv = new ModelAndView();
            mv.addObject("error", e);
            mv.setViewName("error");
            return mv;
        }
    }

    四、Springmvc:常用注解

     @Controller : 标注该类为控制层类

     @RequestMappint: 标注请求的地址

     @ResponseBody: java对象转化为json对象

     @Valid: 标注校验该数据

     @PathVariable: 接受uri地址的值赋给方法的参数

     @SessionAttributes:将数据保存在会话中

    @RequestParam:设置参数名

    @ExceptionAdvice: 标注一个类为异常处理类

    @ExceptionHandler: 标注一个方法为异常处理的方法

    @InitBinder: 处理日期时间参数

  • 相关阅读:
    年度开源盛会 ApacheCon 来临,Apache Pulsar 专场大咖齐聚
    开源流数据公司 StreamNative 正式加入 CNCF,积极推动云原生策略发展
    php摇杆Tiger摇奖
    php调试局部错误强制输出 display_errors
    php文件写入PHP_EOL与FILE_APPEND
    window自动任务实现数据库定时备份
    php 跨服务器ftp移动文件
    linux 关于session缓存丢失,自己掉坑里面了
    mysql 定时任务
    mysql 查询去重 distinct
  • 原文地址:https://www.cnblogs.com/kklb/p/11469487.html
Copyright © 2020-2023  润新知