일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 참조변수
- 추상클래스
- 테스트코드
- 김영한
- 인터페이스
- DI
- 스프링
- 오블완
- 오버라이딩
- JSON
- 코드트리조별과제
- 의존관계
- equals()
- @configuration
- java
- 다형성
- 스프링컨테이너
- html form
- 백준
- 싱글톤
- objecterror
- 서블릿
- 코드트리
- 프록시
- 티스토리챌린지
- http 메시지 컨버터
- HttpServletResponse
- fielderror
- ocp
- 코딩테스트
- Today
- Total
목록2024/09 (22)
minOS
Validator 분리1목표 :복잡한 검증 로직을 별도로 분리컨트롤러에서 검증 로직이 차지하는 부분은 매우 크다. 이런 경우 별도의 클래스로 역할을 분리하는 것이 좋다. 그리고 이렇게 분리한 검증 로직을 재사용할 수도 있다.스프링이 제공하는 Validator 인터페이스를 구현하려고 한다.public interface Validator { /** * Can this {@link Validator} {@link #validate(Object, Errors) validate} * instances of the supplied {@code clazz}? * This method is typically implemented like so: * return Foo.class.isAssignableFrom(c..
오류 코드와 메시지 처리1목표 :오류 메시지를 체계적으로 다루어보자.FieldError 생성자 두가지 public FieldError(String objectName, String field, String defaultMessage); public FieldError(String objectName, String field, @Nullable Object rejectedValue, boolean bindingFailure, @Nullable String[] codes, @Nullable Object[] arguments, @Nullable String defaultMessage) 파라미터 목록- objectName` : 오류가 발생한 객체 이름- field` : 오류 필드- rejectedValue` :..
ch8-11 메서드에 예외 선언하기- 예외를 처리하는 방법 : try-catch문 (직접 처리), 예외 선언하기(자신을 호출한 곳에 예외 처리 떠넘기기)- 메서드가 호출시 발생 가능한 예외를 호출하는 쪽에 알리는 것구조public void 메서드명() throws Exception1, Exception2, ..., ExceptionN { // 메서드 내용}예시public class SimpleExceptionExample { public static void divide(int a, int b) throws ArithmeticException { System.out.println(a + " / " + b + " = " + (a / b)); } public static v..
목표- 사용자 입력 오류 메시지가 화면에 남도록 하자. 예) 가격을 1000원 미만으로 설정시 입력한 값이 남아있어야 한다. `- 'FieldError' , 'ObjectError' 에 대해서 더 자세히 알아보자. 사용자 입력 오류 화면에 남기기@PostMapping("/add") //`BindingResult bindingResult` 파라미터의 위치는 `@ModelAttribute Item item` 다음에 와야 한다. public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult ,RedirectAttributes redirectAttributes, Model model) { // bindReus..
스프링이 제공하는 검증 오류 처리 방법BindingResult스프링이 제공하는 검증 오류를 보관하는 객체이다. 검증 오류가 발생하면 여기에 보관하면 된다. `BindingResult` 가 있으면`@ModelAttribute` 에 데이터 바인딩 시 오류가 발생해도 컨트롤러가 호출된다 ex) @ModelAttribute에 바인딩 시 타입 오류가 발생하면?**`BindingResult` 가 없으면 400 오류가 발생하면서 컨트롤러가 호출되지 않고, 오류 페이지로 이동한다. `BindingResult` 가 있으면 오류 정보( `FieldError` )를 `BindingResult` 에 담아서 컨트롤러를 정상 호출한다. BindingResult에 검증 오류를 적용하는 3가지 방법- @ModelAttribute` ..
검증 요구 사항이 추가되었다고 가정검증 요구 사항 검증 로직 추가 1) 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 2)필드 검증 상품명 필수, 공백X 가격: 1000원 이상, 1백만원 이하 수량: 최대 9999 3) 특정 필드의 범위를 넘어서는 검증 가격 * 수량의 합은 10,000원 이상웹 서비스는 폼 입력시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류 가 발생했는지 친절하게 알려주어야 한다. 컨트롤러의 중요한 역할중 하나는 HTTP 요청이 정상인지 검증하는 것이다.상품 저장 검증 실패 시나리오고객이 상품 등록 폼에서 상품명을 입력하지 않거나, 가격, 수량 등이 너무 작거나 커서 검증 범위를 넘어서면, 서버 검 증 로직이 실패해야 한다. 이렇게 검증에..