使用hibernate校驗欄位
只需要引入start-web框架就可以使用hibernate校驗欄位,就無需在後臺寫程式碼校驗
public class CenterUserBo {
@ApiModelProperty(value="使用者名稱", name="username", example="json", required = false)
private String username;
@ApiModelProperty(value="密碼", name="password", example="123456", required = false)
private String password;
@ApiModelProperty(value="確認密碼", name="confirmPassword", example="123456", required = false)
private String confirmPassword;
@NotBlank(message = "使用者暱稱不能為空")
@Length(max = 12, message = "使用者暱稱不能超過12位")
@ApiModelProperty(value="使用者暱稱", name="nickname", example="傑森", required = false)
private String nickname;
@Length(max = 12, message = "使用者真實姓名不能超過12位")
@ApiModelProperty(value="真實姓名", name="realname", example="傑森", required = false)
private String realname;
@Pattern(regexp = "^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\\d{8})$", message = "手機號格式不正確")
@ApiModelProperty(value="手機號", name="mobile", example="13999999999", required = false)
private String mobile;
@Email
@ApiModelProperty(value="郵箱地址", name="email", example="imooc@imooc.com", required = false)
private String email;
@Min(value = 0, message = "性別選擇不正確")
@Max(value = 2, message = "性別選擇不正確")
@ApiModelProperty(value="性別", name="sex", example="0:女 1:男 2:保密", required = false)
private Integer sex;
@ApiModelProperty(value="生日", name="birthday", example="1900-01-01", required = false)
private Date birthday;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "CenterUserBO{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", confirmPassword='" + confirmPassword + '\'' +
", nickname='" + nickname + '\'' +
", realname='" + realname + '\'' +
", mobile='" + mobile + '\'' +
", email='" + email + '\'' +
", sex=" + sex +
", birthday=" + birthday +
'}';
}
}
@ApiOperation(value = "修改使用者資訊",notes = "修改使用者資訊",httpMethod = "POST")
@PostMapping("update")
public IMOOCJSONResult update(
@ApiParam(name = "userId",value = "使用者id",required = true)
@RequestParam String userId,
@RequestBody CenterUserBo @Valid centerUserBo,
BindingResult result,
HttpServletRequest request,
HttpServletResponse response){
//判斷BindingResult 是否有錯誤的驗證資訊,有,return
if(result.hasErrors()){
Map<String, Object> errorMap = getErrors(result);
return IMOOCJSONResult.errorMap(errorMap);
}
Users userResult = centerUserService.updateUserInfo(userId, centerUserBo);
userResult = setNullProperty(userResult);
CookieUtils.setCookie(request,response,"user",
JsonUtils.objectToJson(userResult),true);
//TODO 後續會修改 增加令牌token,整合redis,分散式會話
return IMOOCJSONResult.ok();
}
private Map<String,Object> getErrors(BindingResult result){
Map<String,Object> map = new HashMap<>();
List<FieldError> fieldErrors = result.getFieldErrors();
for(FieldError fieldError : fieldErrors ){
String errorField = fieldError.getField();
String errorMsg = fieldError.getDefaultMessage();
map.put(errorField, errorMsg);
}
return map;
}
相關文章
- pydantic 欄位欄位校驗
- WTForms 欄位 引數 校驗ORM
- 使用hibernate validate做引數校驗
- vue: el-form只校驗部分欄位VueORM
- 介面自動化全量欄位校驗
- Hibernate資料校驗簡介
- 實現註解校驗Dto欄位是否為空
- Hibernate Validator校驗引數全攻略
- thinkphp validate unique 資料庫欄位唯一性校驗PHP資料庫
- [資料校驗/資料質量] 資料校驗框架(Java):hibernate-validation框架Java
- 時間序列的ADF校驗(單位根校驗)
- spring-boot 使用hibernate validation對引數進行優雅的校驗Springboot
- 如何給SAP Cloud for Customer UI上的欄位新增自定義校驗邏輯CloudUI
- 【vue3+vue2】清除ElementUI的el-input標籤的校驗-區別——resetFields()-移除校驗結果並重置欄位值 & clearValidate()-移除校驗結果VueUI
- 介面自動化測試,一鍵快速校驗介面返回值全部欄位
- PHP校驗15位和18位身份證號PHP
- SpringBoot使用validator校驗Spring Boot
- abc欄位數的使用
- 奇偶校驗(轉換二進位制、bitset)
- 身份證最後一位的校驗
- hibernate跨資料庫,json欄位處理方案,自定義擴充套件JsonStringType資料庫JSON套件
- 如何自定義 SAP UI5 字串型別輸入欄位的校驗邏輯試讀版UI字串型別
- hibernate使用
- 基於hibernate-validator實體欄位唯一性檢查 ,UniqueKey註解
- iview Form 表單校驗時,必傳符號錯位,校驗無效的某個原因ViewORM符號
- MySQL 中 JSON 欄位的使用技巧MySqlJSON
- MySQL中JSON欄位的使用技巧MySqlJSON
- 【Django drf】 序列化類常用欄位類和欄位引數 定製序列化欄位的兩種方式 關係表外來鍵欄位的反序列化儲存 序列化類繼承ModelSerializer 反序列化資料校驗原始碼分析Django繼承原始碼
- fastadmin 新增欄位記圖片欄位AST
- springboot~ConstraintValidatorContext驗證兩個欄位內容相同Spring BootAIContext
- golang常用庫:欄位引數驗證庫-validatorGolang
- Laravel 依賴注入方式驗證表單欄位Laravel依賴注入
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- 校驗帶有兩位小數正規表示式
- drf——Request原始碼分析、序列化元件、序列化類的使用(欄位類和引數)、反序列化校驗和儲存原始碼元件
- 【Vue】元件使用之引數校驗Vue元件
- Laravel 自定義表單請求驗證忽略某些欄位驗證Laravel
- 使用plsql 匯出欄位為json 格式SQLJSON