Spring รองรับสองวิธีการตรวจสอบที่แตกต่างกัน: การตรวจสอบความถูกต้องของสปริงและการตรวจสอบความถูกต้องของถั่ว JSR-303 ทั้งสองอย่างสามารถใช้ได้โดยการกำหนด Spring validator ที่มอบหมายให้กับ delegators อื่น ๆ รวมทั้ง bean validator จนถึงตอนนี้ดีมาก
แต่เมื่อใส่คำอธิบายประกอบวิธีเพื่อขอการตรวจสอบความถูกต้องก็เป็นอีกเรื่องหนึ่ง ฉันสามารถใส่คำอธิบายประกอบแบบนี้ได้
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
หรือแบบนี้
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
นี่คือ @Valid javax.validation.Validและ @Validated เป็นorg.springframework.validation.annotation.Validated เอกสารสำหรับหลังกล่าวว่า
ตัวแปรของ JSR-303 Valid ซึ่งสนับสนุนข้อกำหนดของกลุ่มการตรวจสอบความถูกต้อง ออกแบบมาเพื่อการใช้งานที่สะดวกด้วยการรองรับ JSR-303 ของ Spring แต่ไม่ใช่เฉพาะ JSR-303
ซึ่งไม่ได้ช่วยอะไรมากเพราะมันไม่ได้บอกว่ามันแตกต่างกันอย่างไร ถ้าเลย. ทั้งสองดูเหมือนจะทำงานได้ดีสำหรับฉัน