zoukankan      html  css  js  c++  java
  • JSR303实现数据校验案例

    JSR303实现数据校验案例

    jr303_01

    jr303_02

    1、导包

    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
        <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-validator</artifactId>
          <version>5.4.1.Final</version>
        </dependency>
    

    2、实体类

    package com.yl.bean;
    
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.hibernate.validator.constraints.NotEmpty;
    import org.springframework.format.annotation.DateTimeFormat;
    
    import javax.validation.constraints.NotNull;
    import java.io.Serializable;
    import java.util.Date;
    
    /**
     * 图书实体类
     */
    @Data
    @NoArgsConstructor
    public class Book implements Serializable {
        private Integer id;
        @NotEmpty(message = "书名不能为空")
        private String name;
        private String author;
        private Date date;
        private Float price;
    }
    
    

    3、表单

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <%--
      Created by IntelliJ IDEA.
      User: aq
      Date: 2020/10/26
      Time: 21:10
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    <html>
    <head>
        <title>Add</title>
    </head>
    <body>
    <form:form modelAttribute="book" action="${pageContext.servletContext.contextPath}/book/add" method="post">
        书名:<form:input path="name"/><form:errors path="name" cssStyle="color: red"></form:errors><br>
        作者:<form:input  path="author"/><br>
        出版日期:<form:input path="date"/><br>
        价格:<form:input path="price"/><br>
        <button type="submit">添加</button>
    </form:form>
    </body>
    </html>
    
    

    4、控制器

    package com.yl.controller;
    
    import com.github.pagehelper.PageInfo;
    import com.yl.bean.Book;
    import com.yl.service.IBookService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.validation.Errors;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.SessionAttributes;
    import org.springframework.web.bind.support.SessionStatus;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.validation.Valid;
    import java.util.List;
    
    /**
     * 图书控制器类
     */
    @Controller
    @RequestMapping("/book")
    @SessionAttributes(value = {"pageBook","queryBook"}, types = {PageInfo.class, String.class, Book.class})
    public class BookController {
        @Autowired
        private IBookService bookService;//图书业务层对象
    
        /**
         * 添加图书
         */
        @RequestMapping("/add")
        public ModelAndView add(@Valid Book book, Errors errors,SessionStatus sessionStatus) {
            ModelAndView modelAndView=new ModelAndView();
    
            if (errors.hasErrors()){
                modelAndView.setViewName("add");
                return modelAndView;
            }
            //调用业务层添加图书方法
            bookService.add(book);
    
            return queryByCondition(null,1);
        }
    
        /**
         *添加图书跳转页面
         */
        @RequestMapping("/addSkip")
        public ModelAndView addSkip(){
            ModelAndView modelAndView=new ModelAndView();
            modelAndView.addObject("book",new Book());
            modelAndView.setViewName("add");
            return modelAndView;
        }
        
    }
    
    

    注意:表单的modelAttribute属性值是从requsetScope中传过来的,即必须先请求控制器,在控制器中给modelAttribute赋值才能使用;默认是command的属性值,也可以自己赋值。

    记得快乐
  • 相关阅读:
    构造方法
    $this
    public/private/protected三种访问控制符的区别
    vsftpd的虚拟主机配置,错误记录
    高斯模糊css
    css绘制三角形
    禁止缩放的一行代码
    自适应的Javascript代码resize.js
    判断是pc端还是手机端js
    倒计时
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13893197.html
Copyright © 2011-2022 走看看