diff --git a/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java b/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java index 9bdf5390..a9db78e6 100644 --- a/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java +++ b/springboot_validation/src/main/java/hello/itemservice/domain/item/Item.java @@ -2,12 +2,14 @@ package hello.itemservice.domain.item; import lombok.Data; import org.hibernate.validator.constraints.Range; +import org.hibernate.validator.constraints.ScriptAssert; import javax.validation.constraints.Max; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @Data +//@ScriptAssert(lang = "javascript", script = "_this.price * _this.quantity >= 10000", message = "총 합은 10000원 이상 이다.") public class Item { private Long id; diff --git a/springboot_validation/src/main/java/hello/itemservice/web/validation/ValidationItemControllerV3.java b/springboot_validation/src/main/java/hello/itemservice/web/validation/ValidationItemControllerV3.java index 1ccba004..a75cacea 100644 --- a/springboot_validation/src/main/java/hello/itemservice/web/validation/ValidationItemControllerV3.java +++ b/springboot_validation/src/main/java/hello/itemservice/web/validation/ValidationItemControllerV3.java @@ -43,6 +43,13 @@ public class ValidationItemControllerV3 { @PostMapping("/add") public String addItem(@Validated @ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { + if (item.getPrice() != null && item.getQuantity() != null ) { + int resultPrice = item.getPrice() * item.getQuantity(); + if (resultPrice < 10000) { + bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); + } + } + // 검증 실패시 if (bindingResult.hasErrors()) { return "validation/v3/addForm";