中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring @Valid和@Validated有什么區別

發布時間:2020-07-30 11:26:47 來源:億速云 閱讀:194 作者:小豬 欄目:編程語言

這篇文章主要為大家展示了Spring @Valid和@Validated有什么區別,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

兩者區別


     @Valid
@Validated
標準標準JSR-303規范增強JSR-303規范
javax.validationorg.springframework.validation
驗證結果BindingResult resultBindingResult result
分組支持不支持支持
分組序列不支持支持
類型注解支持
方法注解支持支持
方法參數注解支持支持
構造函數注解支持
成員屬性注解支持不支持
嵌套驗證支持不支持

分組示例

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必須為正整數")
  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必須為正整數")
  private Long pid;

  @NotNull(message = "vid不能為空")
  @Min(value = 1, message = "vid必須為正整數")
  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; 
  } 
}

以上就是關于Spring @Valid和@Validated有什么區別的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吕梁市| 囊谦县| 阳新县| 红安县| 宁国市| 巴林左旗| 温泉县| 仁化县| 竹溪县| 临西县| 赤水市| 文水县| 阳谷县| 合作市| 新昌县| 德钦县| 栾城县| 广德县| 武宣县| 大厂| 海兴县| 确山县| 湟中县| 许昌市| 苍山县| 玛曲县| 贵阳市| 柘城县| 中山市| 新泰市| 磴口县| 南投市| 石柱| 江门市| 哈尔滨市| 崇义县| 桦南县| 台中市| 宁乡县| 颍上县| 万宁市|