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

Spring @Valid和@Validated區(qū)別和用法實例

 更新時間:2020年04月27日 11:17:53   作者:小伍2013  
這篇文章主要介紹了Spring @Valid和@Validated區(qū)別和用法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

兩者區(qū)別


@Valid
@Validated
標準 標準JSR-303規(guī)范 增強JSR-303規(guī)范
javax.validation org.springframework.validation
驗證結(jié)果 BindingResult result BindingResult result
分組支持 不支持 支持
分組序列 不支持 支持
類型注解 ? 支持
方法注解 支持 支持
方法參數(shù)注解 支持 支持
構(gòu)造函數(shù)注解 支持
成員屬性注解 支持 不支持
嵌套驗證 支持 不支持

分組示例

public interface First{}

public interface Second{}
public class User {
	// 所有都驗證
	@NotNull(message = "...")
	private int id;

 	// First 才驗證
	@NotNull(message = "...", groups = { First.class })
	private String username;
 
 	// First 或 Second 才驗證
	@NotNull(message = "...", groups = { First.class, Second.class })
	private String content;
	
	// First 驗證 NotEmpty,Second 驗證 Size
	@NotEmpty(message = "...", groups = { First.class })
	@Size(message = "...", min = 3, max = 8, groups = { Second.class })
	private String height;
}
// 只驗證 Second 分組和沒有分組的屬性
public String save(@Validated( { Second.class }) User user, BindingResult result) {
	if (result.hasErrors()) {
		return "validate/error";
	}
	return "redirect:/success";
}

分組序列

public interface GroupA {}
 
public interface GroupB {}
 
@GroupSequence( { GroupA.class, GroupB.class })
public interface Group {}
public @ResponseBody String save(@Validated({ Group.class }) User user, BindingResult result) {
	if(result.hasErrors()) {
		return false;
	}
	return true;
}

嵌套驗證

public class Item {
  @NotNull(message = "id不能為空")
  @Min(value = 1, message = "id必須為正整數(shù)")
  private Long id;

	@Valid
  @NotNull(message = "props不能為空")
  @Size(min = 1, message = "至少要有一個屬性")
  private List<Prop> props;
}
public class Prop {
  @NotNull(message = "pid不能為空")
  @Min(value = 1, message = "pid必須為正整數(shù)")
  private Long pid;

  @NotNull(message = "vid不能為空")
  @Min(value = 1, message = "vid必須為正整數(shù)")
  private Long vid;

  @NotBlank(message = "pidName不能為空")
  private String pidName;

  @NotBlank(message = "vidName不能為空")
  private String vidName;
}
@RestController
public class ItemController {
  @RequestMapping("/item/add")
  public void addItem(@Validated Item item, BindingResult bindingResult) {
    doSomething();
  }
}

驗證多個對象

@Controller 
public class PeopleController { 
  @RequestMapping("/add") 
  public @ResponseBody String add(@Validated People pp, BindingResult result1, @Validated Person ps, BindingResult result2) 
  { 
    if(result1.hasErrors()) 
    { 
      return false; 
    } 
    if(result2.hasErrors()) 
    { 
      return false; 
    } 
    return true; 
  } 
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 學習Java之如何對時間進行格式化

    學習Java之如何對時間進行格式化

    當我們在默認情況下構(gòu)造出來的時間對象,它的時間格式并不適合我們閱讀,并且在開發(fā)時,pc端、Android端、iOS端等展示的時間格式可能也并不完全一樣,本文就從這幾個問題給大家介紹如何對時間進行格式化,感興趣的同學可以借鑒一下
    2023-05-05
  • Java數(shù)據(jù)結(jié)構(gòu)之二叉搜索樹詳解

    Java數(shù)據(jù)結(jié)構(gòu)之二叉搜索樹詳解

    二叉搜索樹作為一個經(jīng)典的數(shù)據(jù)結(jié)構(gòu),具有鏈表的快速插入與刪除的特點,同時查詢效率也很優(yōu)秀,所以應用十分廣泛。本文將詳細講講二叉搜索樹的原理與實現(xiàn),需要的可以參考一下
    2022-06-06
  • 詳解Spring Boot工程集成全局唯一ID生成器 UidGenerator的操作步驟

    詳解Spring Boot工程集成全局唯一ID生成器 UidGenerator的操作步驟

    本文就在項目中來集成 UidGenerator這一工程來作為項目的全局唯一 ID生成器。接下來通過實例代碼給大家詳解詳解Spring Boot工程集成全局唯一ID生成器 UidGenerator的操作步驟,感興趣的朋友一起看看吧
    2018-10-10
  • 談談變量命名規(guī)范的重要性

    談談變量命名規(guī)范的重要性

    下面小編就為大家?guī)硪黄務勛兞棵?guī)范的重要性。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • ZooKeeper入門教程二在單機和集群環(huán)境下的安裝搭建及使用

    ZooKeeper入門教程二在單機和集群環(huán)境下的安裝搭建及使用

    本文是ZooKeeper入門系列教程,涵蓋ZooKeeper的安裝使及單機集群環(huán)境搭建,通過實例和大量圖表,結(jié)合實戰(zhàn),幫助學習者理解和運用,有需要的朋友可以借鑒參考下
    2022-01-01
  • Java多例設(shè)計模式實例詳解

    Java多例設(shè)計模式實例詳解

    這篇文章主要介紹了Java多例設(shè)計模式,結(jié)合實例形式分析了基于Java的多例模式概念、原理、定義與使用方法,需要的朋友可以參考下
    2018-05-05
  • Tomcat ClassLoader打破雙親委派源碼解析

    Tomcat ClassLoader打破雙親委派源碼解析

    這篇文章主要為大家介紹了Tomcat ClassLoader打破雙親委派源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • JAVA重復調(diào)用接口導致數(shù)據(jù)不一致的問題解決

    JAVA重復調(diào)用接口導致數(shù)據(jù)不一致的問題解決

    在使用JAVA進行開發(fā)時,我們經(jīng)常會遇到要調(diào)用接口來獲取數(shù)據(jù)的情況,本文主要介紹了JAVA重復調(diào)用接口導致數(shù)據(jù)不一致的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Mybatis?Plus?中的LambdaQueryWrapper示例詳解

    Mybatis?Plus?中的LambdaQueryWrapper示例詳解

    這篇文章主要介紹了Mybatis?Plus?中的LambdaQueryWrapper,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Mybatis 中的sql批量修改方法實現(xiàn)

    Mybatis 中的sql批量修改方法實現(xiàn)

    在項目中遇到需要批量更新的功能,原本想的是在Java中用循環(huán)訪問數(shù)據(jù)庫去更新,但是心里總覺得這樣做會不會太頻繁了,太耗費資源了,效率也很低,查了下mybatis的批量操作,原來確實有<foreach>標簽可以做到,下面通過本文給大家介紹下
    2017-01-01

最新評論

布拖县| 邵阳县| 潍坊市| 华池县| 安国市| 韶关市| 株洲市| 大庆市| 凯里市| 农安县| 榆树市| 措勤县| 遂川县| 略阳县| 大姚县| 绩溪县| 武胜县| 巴东县| 元江| 白河县| 德安县| 宣恩县| 巴东县| 连平县| 荔浦县| 通榆县| 德令哈市| 澄迈县| 封丘县| 石泉县| 托克托县| 南岸区| 舒兰市| 汶上县| 千阳县| 东宁县| 肥乡县| 天气| 南川市| 彩票| 张掖市|