在springboot後臺開發中,經常會遇到輸入參數需要校驗。springBoot提供強大的註解@Valid @Validate兩個註解來進行參數校驗。
- 簡單校驗
如下所示爲我們controller代碼,接口參數爲User對象,我們使用@Valid修飾了該對象表示我們要校驗其成員
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String test(@RequestBody @Valid User user, BindingResult checkResult) {
if(checkResult.hasErrors()) {
StringBuilder message = new StringBuilder();
for (FieldError fieldError : checkResult.getFieldErrors()) {
message.append(fieldError.getDefaultMessage()).append(",");
}
return message.toString();
}
else {
return "true";
}
}
User類中使用@NotNull修飾了userId與userName表明其不爲null
public class User {
@NotNull(message = "userId 不爲空")
private Integer userId;
@NotNull(message = "userName不爲空")
private String userName;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
現在來測試一下
當我們輸入:
{
"userId":111
}
可以看到BindingResult 已經幫我們捕獲到了錯誤:
結果輸出爲:
userName不爲空,
當輸入完整的數據後:
{
"userId":111,
"userName":"韓大帥"
}
結果正常沒有異常出現。
除了@NotNull更多的校驗方式請參見javax.validation.constraints
ok,那麼簡單的參數校驗到這裏就結束了,後期將爲大家介紹多嵌套實體類的參數校驗以及分組校驗。