Java,SpringBoot,Validation驗證框架,提示驗證訊息國際化

前言

國際化資訊也稱為“本地化資訊”,一般需要兩個條件才可以確定一個特定型別的本地化資訊,它們分別是“語言型別”和“國家/地區的型別”。如中文字地化資訊既有中國大陸地區的中文,又有中國臺灣、中國香港地區的中文,還有新加坡地區的中文,Java透過java。util。Locale類表示一個本地化物件,它允許透過語言引數和國家/地區引數建立一個確定的本地化物件。

之前內容:Validation驗證框架,@Validated和@Valid驗證,統一返回錯誤資訊,自定義Validator驗證。

程式碼

接收引數類:

import lombok。Data;import javax。validation。constraints。*;import java。io。Serializable;import java。util。List;@Datapublic class UserParam implements Serializable { private static final long serialVersionUID = 3869883763128105939L; // 名稱 @NotEmpty(message = “{vo。user。NAME_NOT_EMPTY}”) private String name; // 賬號 @NotBlank(message = “{vo。user。ACCOUNT_NOT_EMPTY}”) private String account; // 地址 @NotBlank(message = “{vo。user。ADDRESS_NOT_EMPTY}”) private String address; // 密碼 @Size(min = 6, max = 20, message = “{vo。user。PASSWORD_SIZE}”) @NotBlank(message = “{vo。user。PASSWORD_NOT_EMPTY}”) private String password; // 郵箱 @Email(message = “{vo。user。EMAIL_ERROR_FORMAT}”) @NotBlank(message = “{vo。user。EMAIL_NOT_EMPTY}”) private String email; // 年齡 @Min(value = 18, message = “{vo。user。AGE_MUST_GREATERTHAN_18}”) private int age; // 車牌號 @NotNull(message = “{vo。user。PLATENO_NOT_EMPTY}”) private String plateNo; // 業餘愛好 @NotEmpty(message = “{vo。user。HOBILLES_NOT_EMPTY}”) private List hobbies;}

控制器:

import lombok。extern。slf4j。Slf4j;import org。springframework。stereotype。Controller;import org。springframework。validation。BindingResult;import org。springframework。validation。annotation。Validated;import org。springframework。web。bind。annotation。RequestBody;import org。springframework。web。bind。annotation。RequestMapping;import org。springframework。web。bind。annotation。RequestMethod;import org。springframework。web。bind。annotation。ResponseBody;@Slf4j@Controller@RequestMapping(value = “/user”)public class UserController { @RequestMapping(value = “/add”, method = {RequestMethod。GET, RequestMethod。POST}) @ResponseBody public Object addUser(@RequestBody @Validated UserParam userParam, BindingResult bindingResult) { log。info(“——-addUser ——-userParam:{}”, userParam。toString()); String result = “成功:” + userParam; //如果驗證通不過的處理 if (bindingResult。hasErrors()) { //列印錯誤 result = bindingResult。getFieldError()。getDefaultMessage(); } log。info(“——-addUser ——-result:{}”, result); return result; }}

資原始檔:

ValidationMessages。properties

vo。user。NAME_NOT_EMPTY=姓名不能為空vo。user。AGE_NOT_EMPTY=年齡不能為空vo。user。AGE_MUST_GREATERTHAN_18=年齡必須大於等於18歲vo。user。HOBILLES_NOT_EMPTY=興趣愛好不能為空vo。user。ACCOUNT_NOT_EMPTY=賬號不能為空vo。user。PLATENO_NOT_EMPTY=車牌號碼不能為空vo。user。ADDRESS_NOT_EMPTY=地址不能為空vo。user。PASSWORD_SIZE=密碼的長度應該在6和20之間vo。user。PASSWORD_NOT_EMPTY=密碼不能為空vo。user。EMAIL_ERROR_FORMAT=郵箱格式錯誤vo。user。EMAIL_NOT_EMPTY=郵箱不能為空

ValidationMessages_en。properties

vo。user。NAME_NOT_EMPTY=The name cannot be emptyvo。user。AGE_NOT_EMPTY=The age cannot be emptyvo。user。AGE_MUST_GREATERTHAN_18=Must be at least 18 years oldvo。user。HOBILLES_NOT_EMPTY=A hobby cannot be emptyvo。user。ACCOUNT_NOT_EMPTY=The account cannot be emptyvo。user。PLATENO_NOT_EMPTY=The license plate number cannot be blankvo。user。ADDRESS_NOT_EMPTY=The address cannot be emptyvo。user。PASSWORD_SIZE=The length of the password should be between 6 and 20vo。user。PASSWORD_NOT_EMPTY=The password cannot be emptyvo。user。EMAIL_ERROR_FORMAT=Mailbox format errorvo。user。EMAIL_NOT_EMPTY=The mailbox cannot be empty

ValidationMessages_zh。properties

vo。user。NAME_NOT_EMPTY=姓名不能為空vo。user。AGE_NOT_EMPTY=年齡不能為空vo。user。AGE_MUST_GREATERTHAN_18=年齡必須大於等於18歲vo。user。HOBILLES_NOT_EMPTY=興趣愛好不能為空vo。user。ACCOUNT_NOT_EMPTY=賬號不能為空vo。user。PLATENO_NOT_EMPTY=車牌號碼不能為空vo。user。ADDRESS_NOT_EMPTY=地址不能為空vo。user。PASSWORD_SIZE=密碼的長度應該在6和20之間vo。user。PASSWORD_NOT_EMPTY=密碼不能為空vo。user。EMAIL_ERROR_FORMAT=郵箱格式錯誤vo。user。EMAIL_NOT_EMPTY=郵箱不能為空

測試

測試地址:

http://127。0。0。1:8080/user/add

測試情況:

Java,SpringBoot,Validation驗證框架,提示驗證訊息國際化