详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)4

详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)4,第1张

详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)4 详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)4 27、新增JSR303校验

一般对于比较重要的数据,前端做完校验之后,还需要后端校验。
因为:前端的校验不安全,用户可以绕过js,或者修改元素对应的前端代码。来通过校验。
比如:右键元素,点击检查。可以对代码进行修改。

后端校验,我们使用SpringMVC通过的JSR303进行校验。
包括数据库里面需要对字段empName加上唯一性约束。

想要项目支持JSR303校验,需要导入Hibernate-Validator pom文件

 
            org.hibernate
            hibernate-validator
            5.4.1.Final
        

当前项目的所有pom文件:



    4.0.0

    com.rtl
    ssm-crud
    1.0-SNAPSHOT
    war

    
        8
        8
    
    
        
            org.springframework
            spring-webmvc
            4.3.7.RELEASE
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.8.8
        
        
            org.springframework
            spring-jdbc
            4.3.7.RELEASE
        
        
            org.springframework
            spring-aspects
            4.3.7.RELEASE
        

        
            org.mybatis
            mybatis
            3.4.2
        

        
            org.mybatis
            mybatis-spring
            1.3.1
        
        
            org.mybatis.generator
            mybatis-generator-core
            1.3.7
        

        
            c3p0
            c3p0
            0.9.1.2
        

        
            mysql
            mysql-connector-java
            8.0.27
        
        
            jstl
            jstl
            1.2
        

        
            javax.servlet
            javax.servlet-api
            3.1.0
        

        
            junit
            junit
            4.12
        


        
            org.springframework
            spring-test
            4.3.7.RELEASE
        

        
            com.github.pagehelper
            pagehelper
            5.0.0
        

        
            org.hibernate
            hibernate-validator
            5.4.1.Final
        

    


如何使用JSR校验呢?
第一步:
我们需要对empName设置正则表达式规则:
java bean类的Employee对象的属性empName上面添加注解:@Pattern

对于属性empName:

@Pattern(regexp = "^([a-zA-Z0-9_-]|[\u4E00-\u9FA5]){2,20}$",
            message = "用户名必须为2到12个字符,允许中文,英文大小写,数字,下划线,减号")
    private String empName;

对于属性email
可以使用注解@Email
也可以写@Pattern

@Pattern(regexp = "^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})",
            message = "邮箱格式不正确")
    private String email;

第二步:
后面这个BindingResult对象是将校验的结果进行了封装。

 @RequestMapping(value = "/emp",method = RequestMethod.POST)
    @ResponseBody
    public Msg saveEmp(@Valid Employee employee , BindingResult result){
        
        employeeService.saveEmployee(employee);
        return Msg.success();
    }

27、
2021-11-27 18:33
2021-11-21 19:53

1、conttroller

2、index.jsp
我们之前绑定的保存按钮事件:
先进行校验,校验成功之后,再执行新增数据到DB中。

现在补充的就是:
向后端发送ajax请求,新增数据到DB之前,需要校验。



所有index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>


    首页
    <%
        pageContext.setAttribute("APP_PATH",request.getContextPath());
    %>
    

    
    

    
    

    
    




    
        
            
                
                员工添加					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5612828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存