V2.2. FieldError 와 ObjectError

μ•ŒνŒŒλ‘œκ·ΈΒ·2023λ…„ 3μ›” 26일
0

Spring MVC ν™œμš© 기술

λͺ©λ‘ 보기
34/42
post-custom-banner

πŸ”— μš”κ΅¬μ‚¬ν•­ 확인

μ§€λ‚œ ν¬μŠ€νŠΈκΉŒμ§€ κ΅¬ν˜„ν•˜λ©΄ 검증에 μ‹€νŒ¨ν• κ²½μš° ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ λ¬Έμ œμ μ„ ν‘œμ‹œν•΄μ€„ 수 μžˆμ§€λ§Œ,
ν΄λΌμ΄μ–ΈνŠΈκ°€ μž…λ ₯ν–ˆλ˜ data 듀이 μ „λΆ€ μ§€μ›Œμ§€λŠ” λ¬Έμ œκ°€ μžˆμ—ˆλ‹€.

✏️ FieldError 의 Parameter μΆ”κ°€

  • FieldError 의 μƒμ„±μžλŠ” 기쑴에 μ‚¬μš©ν•œ μƒμ„±μž 외에 λ‹€λ₯Έ μƒμ„±μžλ„ μ‘΄μž¬ν•œλ‹€.
    • λ‘λ²ˆμ§Έ μ„Έλ²ˆμ§Έ Param 사이에 4가지 Param 을 μΆ”κ°€ν•΄μ„œ 2번째 λ²„μ „μ˜ μƒμ„±μžλ₯Ό 생성할 수 μžˆλ‹€.
    • Param 3.
      • ν•„λ“œ 검증 μ‹€νŒ¨μ‹œ value (거절된 κ°’) λ₯Ό μž…λ ₯
      • νΌμ—μ„œ Item 으둜 전달 λ°›μ•˜μœΌλ‹ˆ κ·ΈλŒ€λ‘œ getItemName 을 μž…λ ₯ν•΄μ€€λ‹€.
    • Param 4.
      • type 였λ₯˜μΌ 경우 true / 검증 μ‹€νŒ¨μΌ 경우 false μž…λ ₯
    • Param 5.
    • Param 6.
      • λ©”μ‹œμ§€ μ½”λ“œμ˜ argument
    • μ‹€ν–‰μ‹œμΌœλ³΄λ©΄ ν•„λ“œ 검증에 μ‹€νŒ¨ν•΄λ„ text box 에 ν΄λΌμ΄μ–ΈνŠΈκ°€ μž…λ ₯ν•œ data κ°€ μ§€μ›Œμ§€μ§€ μ•ŠλŠ”λ‹€.
if (!StringUtils.hasText(item.getItemName()))
    bindingResult.addError(new FieldError(
            "item",
            "itemName",
            item.getItemName(), false, null, null,
            "μƒν’ˆ 이름은 ν•„μˆ˜μž…λ‹ˆλ‹€.")
    );

πŸ“ ObjectError 의 Parameter μΆ”κ°€

  • ObjectError 도 νŒŒλΌλ―Έν„°κ°€ 더 μΆ”κ°€λœ μƒμ„±μžκ°€ μ‘΄μž¬ν•œλ‹€.
    • 각각 λ©”μ‹œμ§€μ½”λ“œμ™€ κ·Έ argument μž…λ ₯λž€μ΄λ‹€.
if (item.getPrice() != null && item.getQuantity() != null) {
    int resultPrice = item.getPrice() * item.getQuantity();
    if (resultPrice < 10000)
        bindingResult.addError(new ObjectError(
                "item",
                null,  null,
                "가격 * μˆ˜λŸ‰μ˜ 합은 10,000 원 이상이여야 ν•©λ‹ˆλ‹€. ν˜„μž¬ κ°’ = " + resultPrice
        ));
}
profile
잘λͺ»λœ λ‚΄μš© PR ν™˜μ˜
post-custom-banner

0개의 λŒ“κΈ€