springboot_validation : errors.properties
This commit is contained in:
@@ -76,7 +76,7 @@ public class ValidationItemControllerV2 {
|
|||||||
return "redirect:/validation/v2/items/{itemId}";
|
return "redirect:/validation/v2/items/{itemId}";
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/add")
|
// @PostMapping("/add")
|
||||||
public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {
|
public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {
|
||||||
|
|
||||||
// 검증 로직
|
// 검증 로직
|
||||||
@@ -108,6 +108,39 @@ public class ValidationItemControllerV2 {
|
|||||||
return "redirect:/validation/v2/items/{itemId}";
|
return "redirect:/validation/v2/items/{itemId}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/add")
|
||||||
|
public String addItemV3(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {
|
||||||
|
|
||||||
|
// 검증 로직
|
||||||
|
if (!StringUtils.hasText(item.getItemName())) {
|
||||||
|
bindingResult.addError(new FieldError("item", "itemName", item.getItemName(), false, new String[]{"required.item.itemName"}, null, null));
|
||||||
|
}
|
||||||
|
if (item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000) {
|
||||||
|
bindingResult.addError(new FieldError("item", "price", item.getPrice(), false, new String[]{"range.item.price"}, new Object[]{1000, 1000000}, null));
|
||||||
|
}
|
||||||
|
if (item.getQuantity() == null || item.getQuantity() >= 9999) {
|
||||||
|
bindingResult.addError(new FieldError("item", "quantity", item.getQuantity(), false, new String[]{"max.item.quantity"}, new Object[]{9999}, null));
|
||||||
|
}
|
||||||
|
if (item.getPrice() != null && item.getQuantity() != null ) {
|
||||||
|
int resultPrice = item.getPrice() * item.getQuantity();
|
||||||
|
if (resultPrice < 10000) {
|
||||||
|
bindingResult.addError(new ObjectError("item", new String[]{"totalPriceMin"}, new Object[]{10000, resultPrice}, null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 검증 실패시
|
||||||
|
if (bindingResult.hasErrors()) {
|
||||||
|
return "validation/v2/addForm";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 검증 성공시
|
||||||
|
Item savedItem = itemRepository.save(item);
|
||||||
|
redirectAttributes.addAttribute("itemId", savedItem.getId());
|
||||||
|
redirectAttributes.addAttribute("status", true);
|
||||||
|
return "redirect:/validation/v2/items/{itemId}";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/{itemId}/edit")
|
@GetMapping("/{itemId}/edit")
|
||||||
public String editForm(@PathVariable Long itemId, Model model) {
|
public String editForm(@PathVariable Long itemId, Model model) {
|
||||||
Item item = itemRepository.findById(itemId);
|
Item item = itemRepository.findById(itemId);
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
#logging.level.org.apache.coyote.http11=debug
|
#logging.level.org.apache.coyote.http11=debug
|
||||||
|
spring.messages.basename=messages, errors
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
required.item.itemName=상품 이름은 필수입니다.
|
||||||
|
range.item.price=가격은 {0} ~ {1} 까지 허용합니다.
|
||||||
|
max.item.quantity=수량은 최대 {0} 까지 허용합니다.
|
||||||
|
totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1}
|
||||||
Reference in New Issue
Block a user