hibernate-validator驗證請求引數
阿新 • • 發佈:2019-01-11
開發介面要進行請求引數內容格式校驗,比如在接收到請求引數後依次需要進行資料內容判空、資料格式規範校驗等,十分麻煩,於是嘗試用hibernate-validator進行引數校驗,簡單記錄一下使用步驟:
1.匯入hibernate-validator的jar包依賴到maven專案的pom.xml檔案中
2.在springmvc.xml中進行配置載入hibernate-validator的bean
<!-- 啟用hibernate-validator的註解 --> <mvc:annotation-driven validator="validator"/>
<beanid="hibernate_validator_messages" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!-- 這個用來寫驗證的提示資訊模板,此處注去 --> <!-- <property name="basenames"> <list> <value>/WEB-INF/hibernate_validator_messages/hibernate_validator_message_zh_CN</value> </list> <property>--> <property name="fileEncodings"> <props> <prop key="/WEB-INF/hibernate_validator_messages/hibernate_validator_message_zh_CN">UTF-8</prop> </props> </property> </bean> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> <property name="validationMessageSource" ref="hibernate_validator_messages"/> </bean>
3.在實體類中使用註解進行引數校驗
public class User{ // 這個註解表示name必須不為空,否則就提示message @NotNull(message = "name不能為空") private String name; getter/setter........... }
4.在介面方法處新增校驗標記
@Controller public class UserController { // @Valid表示會對User接收到的引數進行校驗,當有引數校驗錯誤時errors中將有錯誤,錯誤資訊就是預設的message @PostMapping(value = "/register") public String register(@Valid User user, Errors errors) { if (errors.hasErrors()) { return "register"; } return "redirect:/index"; } }
這玩意應該可以寫在切面裡,再試試看,校驗一共有哪些常用註解先不寫了,這裡只作簡單記錄,後續再補充。