hibernate-validator驗證請求參數


開發接口要進行請求參數內容格式校驗,比如在接收到請求參數后依次需要進行數據內容判空、數據格式規范校驗等,十分麻煩,於是嘗試用hibernate-validator進行參數校驗,簡單記錄一下使用步驟:

1.導入hibernate-validator的jar包依賴到maven項目的pom.xml文件中

2.在springmvc.xml中進行配置加載hibernate-validator的bean

<!-- 啟用hibernate-validator的注解 -->
<mvc:annotation-driven validator="validator"/>

<bean id="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";
    } 
}

這玩意應該可以寫在切面里,再試試看,校驗一共有哪些常用注解先不寫了,這里只作簡單記錄,后續再補充。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM