最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring4下validation數(shù)據(jù)校驗無效(maven)的解決

 更新時間:2021年06月09日 17:08:07   作者:JavaLitterBoy  
這篇文章主要介紹了Spring4下validation數(shù)據(jù)校驗無效(maven)的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringMVC4使用數(shù)據(jù)校驗的時候需要使用hibernate-validator的包

第一步添加依賴

    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>2.0.0.Final</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>5.4.1.Final</version>
    </dependency>

第二步添加校驗注解

package com.demo.model;
/*
* spring4 用hibernate中的validation
* 
* */
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;
import javax.validation.constraints.Size;
public class User {
    private String username;
    private String password;
    private String nickname;
    private String email;
    public User(){
    }
    public User(String username, String password, String nickname, String email) {
        this.username = username;
        this.password = password;
        this.nickname = nickname;
        this.email = email;
    }
    @NotBlank(message = "用戶名不能為空")
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    @Size(min = 6,max = 20,message = "密碼為6-20位")
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getNickname() {
        return nickname;
    }
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    @Email(message = "請輸入合法的郵箱")
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}

第三步在控制器中對指定參數(shù)進行校驗注解

 注:BindingResult 必須緊跟在@Validate

    //@Validated指定驗證對象 BindingResult緊跟Validated
    @RequestMapping(value="/add",method = RequestMethod.POST)
    public String add(@Validated User user, BindingResult br){
        System.out.println(br);
        System.out.println(br.getErrorCount());
        if(br.hasErrors())
            return "user/add";
        users.put(user.getUsername(),user);
        return "redirect:/user/users";
    }

注:這個配置也會影響到校驗是否生效

<mvc:annotation-driven/>

SpringBoot-----數(shù)據(jù)驗證validation(實戰(zhàn)中,不推薦使用)

1、定義錯誤信息

在resources/下創(chuàng)建名稱為ValidationMessages.properties

member.mid.notnull.error=用戶名不允許為空
member.mid.email.error=用戶名的注冊必須輸入正確的郵箱
member.mid.length.error=用戶名的格式錯誤

2、給Vo類添加注解

package com.zemel.micorboot.vo;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
public class Member implements Serializable{
 
 /**
  * 
  */
 private static final long serialVersionUID = 1L;
 @NotNull(message="{member.mid.notnull.error}")
 @Email(message="{member.mid.email.error}")
 @Length(min=6,message="{member.mid.length.error}")
 private String mid;
 private Integer age;
 private Double salary;
 private Date birthday;
 public String getMid() {
  return mid;
 }
 public void setMid(String mid) {
  this.mid = mid;
 }
 public Integer getAge() {
  return age;
 }
 public void setAge(Integer age) {
  this.age = age;
 }
 public Double getSalary() {
  return salary;
 }
 public void setSalary(Double salary) {
  this.salary = salary;
 }
 public Date getBirthday() {
  return birthday;
 }
 public void setBirthday(Date birthday) {
  this.birthday = birthday;
 }
}

3、控制添加驗證

@Valid Member vo, BindingResult result
package com.zemel.micorboot.controller;
import java.util.List;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zemel.micorboot.base.AbstractBaseController;
import com.zemel.micorboot.vo.Member;
 
@Controller
public class MemberController extends AbstractBaseController {
 @GetMapping("/addPre")
 public String addPre(){
  return "message/member_add";
 }
 
 @GetMapping("/add")
 @ResponseBody
 public Object add(@Valid Member vo, BindingResult result){
  System.out.println("【ADD方法】"+result.hasErrors());
  
  if(result.hasErrors()){
   List<ObjectError> list = result.getAllErrors();
   list.forEach(oe -> {
    
   });
   return result.getAllErrors();
  }
  return vo; 
 }
}

4、訪問結果

[{"codes":["Email.member.mid","Email.mid","Email.java.lang.String","Email"],"arguments":[{"codes":["member.mid","mid"],"arguments":null,"defaultMessage":"mid","code":"mid"},[],{"defaultMessage":".*","arguments":null,"codes":[".*"]}],"defaultMessage":"ç¨æ·åçæ³¨åå¿é¡»è¾å¥æ­£ç¡®çé®ç®±","objectName":"member","field":"mid","rejectedValue":"xx","bindingFailure":false,"code":"Email"}]

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Mybatis-Plus或PageHelper多表分頁查詢總條數(shù)不對問題的解決方法

    Mybatis-Plus或PageHelper多表分頁查詢總條數(shù)不對問題的解決方法

    PageHelper 這個插件用了很多次了,今天使用的時候才遇到一個問題,這篇文章主要給大家介紹了關于Mybatis-Plus或PageHelper多表分頁查詢總條數(shù)不對問題的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • 關于MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫問題

    關于MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫問題

    這篇文章主要介紹了MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫的具體實現(xiàn),具體的業(yè)務邏輯,在service層的類或者方法上面添加@DataSource注解來指定該業(yè)務需要用到的數(shù)據(jù)源,需要的朋友可以參考下
    2022-01-01
  • SpringBoot配置HTTPS及開發(fā)調試的操作方法

    SpringBoot配置HTTPS及開發(fā)調試的操作方法

    在實際開發(fā)過程中,如果后端需要啟用https訪問,通常項目啟動后配置nginx代理再配置https,前端調用時高版本的chrome還會因為證書未信任導致調用失敗,通過摸索整理一套開發(fā)調試下的https方案,下面給大家分享SpringBoot配置HTTPS及開發(fā)調試,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 淺談SpringBoot主流讀取配置文件三種方式

    淺談SpringBoot主流讀取配置文件三種方式

    這篇文章主要介紹了淺談SpringBoot主流讀取配置文件三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • java中文傳值亂碼問題的解決方法

    java中文傳值亂碼問題的解決方法

    這篇文章主要為大家詳細介紹了java中文傳值亂碼問題的解決方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Java報錯Java.net.SocketTimeoutException的幾種解決方法

    Java報錯Java.net.SocketTimeoutException的幾種解決方法

    在 Java 網(wǎng)絡編程中,SocketTimeoutException 通常表示在進行網(wǎng)絡操作時,等待響應的時間超過了設定的超時時間,本文將深入探討 Java.net.SocketTimeoutException 的問題,并為開發(fā)者和環(huán)境配置者提供詳細的解決方案,需要的朋友可以參考下
    2024-10-10
  • 淺談Java基準性能測試之JMH

    淺談Java基準性能測試之JMH

    JMH是Java Microbenchmark Harness的簡稱,一個針對Java做基準測試的工具。想準確的對一段代碼做基準性能測試并不容易,因為JVM層面在編譯期、運行時對代碼做很多優(yōu)化,當代碼塊處于整個系統(tǒng)中運行時并不一定會生效,產(chǎn)生錯誤的基準測試結果,這個問題就是JMH要解決的
    2021-06-06
  • SpringMVC記錄我遇到的坑_AOP注解無效,切面不執(zhí)行的解決

    SpringMVC記錄我遇到的坑_AOP注解無效,切面不執(zhí)行的解決

    這篇文章主要介紹了SpringMVC記錄我遇到的坑_AOP注解無效,切面不執(zhí)行的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 深入理解java代碼實現(xiàn)分治算法

    深入理解java代碼實現(xiàn)分治算法

    分治算法是一種遞歸算法,它將問題劃分為幾個獨立的子問題,然后遞歸地解決這些子問題,最后將子問題的解合并起來得到原問題的解,本文詳細的介紹java分治算法,感興趣的可以了解一下
    2023-09-09
  • java交換排序之奇偶排序實現(xiàn)方法

    java交換排序之奇偶排序實現(xiàn)方法

    這篇文章主要介紹了java交換排序之奇偶排序實現(xiàn)方法,實例分析了奇偶排序的原理與具體實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02

最新評論

邓州市| 屏东市| 旺苍县| 钦州市| 安溪县| 正宁县| 改则县| 淳化县| 永州市| 汾阳市| 上栗县| 阜宁县| 惠水县| 洪洞县| 铁岭县| 屏南县| 江北区| 宣化县| 竹北市| 厦门市| 达州市| 威远县| 揭西县| 内江市| 东安县| 吴川市| 蓝山县| 鹤岗市| 德惠市| 银川市| 漾濞| 霍林郭勒市| 顺义区| 韶山市| 县级市| 巴南区| 呼伦贝尔市| 吉隆县| 青田县| 吉林省| 长沙县|