Spring Web Form

Spring Web Form

1. Data Binding

- request parameter들은 어떻게 해당 오브젝트로 옮겨질까

Naive solution - @RequestParam annotaion을 사용하여 메서드 매개 변수와 bind 해준다.

ex)

@RequestMapping("/deget")

public String doGet( @RequestParam("name") String name){ ... }

-> 이런 식으로 받은 매개변수를 객체를 만들어 set 해주는 방식

- @RequestParam annotaion을 사용하여 메서드 매개 변수와 bind 해준다. ex) @RequestMapping("/deget") public String doGet( @RequestParam("name") String name){ ... } -> 이런 식으로 받은 매개변수를 객체를 만들어 set 해주는 방식 Spring Data Binding - form에서 오는 매개변수를 자동으로 객체에 바인딩 시켜준다.

ex)

@RequestMapping(value="/docreate", method=RequestMethod.POST)

public String doGet(Offer offer){ ... }

-> Spring이 자동적으로 offer객체에 받은 requestParameter를 넣어준다. 바인딩 되는 과정 Dispatcher Servlet에서 요청을 받음 새로운 form bean이 인스턴스화된다. form bean은 requestParameter에서 채워진다. form bean이 모델에 추가된다. bean을 Controller로 전달 Controller에서 Dispatcher Serlvet에 Model 객체를 전달한다. Dispatcher Servelt에서 View로 Model 객체를 전달 후 View는 객체를 사용하여 render

- form에서 오는 매개변수를 자동으로 객체에 바인딩 시켜준다. ex) @RequestMapping(value="/docreate", method=RequestMethod.POST) public String doGet(Offer offer){ ... } -> Spring이 자동적으로 offer객체에 받은 requestParameter를 넣어준다. View 예시

- hihi, ${offer.name}

2. Data Validation

- 사용자가 잘못된 입력을 한 경우 제대로된 입력을 위해 안내를 해주어야한다.

ex) 이메일 형식이 아닙니다.(이메일 형식 예시: aaa@naver.com)

Hibernate Validator 사용자의 오류를 감지하려면 form bean에서 캡슐화된 form data의 유효성을 검증해야한다.

(쉽게 말해 Bean을 정의한 클래스의 맴버 변수에 대해 유효성 설정이 필요하다는 것) Bean Validation API는 JavaBean 유효성 검사를위한 API를 정의한다.

- @NotNull, @Pattern, @Size annotation을 달아 Bean의 각 속성에 유효성 검사를 할 수 있다. Bean Validation API의 reference 구현인 Hibernate Validator 사용 예시

- Hibernate Validator는 몇가지 커스텀 annotation을 제공한다. (예 : @Email)

- 라이브러리 추가

< groupId > org.hibernate

< artifactId >hibernate-validator

...

Public class Offer{ private int id; @Size(min=5, max=100) @Pattern(regexp="^[A-Z]{1}[a-z]+$") private String name; @NotEmpty @Email private String email; ... }

Message Interpolation

- 위반 된 Bean 유효성 검증 제한 조건에 대한 오류 메시지를 작성하는 프로세스

추가 작성 예정....................

from http://eoghks0521.tistory.com/58 by ccl(A) rewrite - 2020-03-25 21:20:28

댓글

이 블로그의 인기 게시물

[Linux] 파일 로그 보기(tail)

[샤니마스 SPRING PARTY2020] THE IDOLM @ STER SHINY COLORS SPRING...

2020 LCK 롤챔스 Spring 경기 재개 및 일정