SPRING
-
핸들러 메소드 15부: @RequestBody & HttpEntitySPRING/스프링 MVC 2021. 7. 10. 16:00
@RequestBody - 요청 본문(body)에 들어있는 데이터를 HttpMessageConveter를 통해 변환한 객체로 받아올 수 있다. - @Valid 또는 @Validated를 사용해서 값을 검증 할 수 있다. - BindingResult 아규먼트를 사용해 코드로 바인딩 또는 검증 에러를 확인할 수 있다. HttpMessageConverter - 스프링 MVC 설정 (WebMvcConfigurer)에서 설정할 수 있다. - configureMessageConverters: 기본 메시지 컨버터 대체 - extendMessageConverters: 메시지 컨버터에 추가 - 기본 컨버터 - WebMvcConfigurationSupport.addDefaultHttpMessageConverters Htt..
-
핸들러 메소드 14부 ResponseEntity 예제:) 다운로드SPRING/스프링 MVC 2021. 7. 10. 01:58
파일 리소스를 읽어오는 방법 - 스프링 ResourceLoader 사용하기 파일 다운로드 응답 헤더에 설정할 내용 - Content-Disposition: 사용자가 해당 파일을 받을 때 사용할 파일 이름 - Content-Type: 어떤 파일인가 - Content-Length: 얼마나 큰 파일인가 파일의 종류(미디어 타입) 알아내는 방법 - http://tika.apache.org/ org.apache.tika tika-core 1.26 ResponseEntity - 응답 상태 코드 - 응답 헤더 - 응답 본문 파일 다운로드 로직 @Controller public class FileController { @Autowired private ResourceLoader resourceLoader; @GetMa..
-
핸들러 메소드 13부: MultipartFileSPRING/스프링 MVC 2021. 7. 9. 19:13
MultipartFile - 파일 업로드시 사용하는 메소드 아규먼트 - MultipartResolver 빈이 설정 되어 있어야 사용할 수 있다. - POST multipart/form-data 요청에 들어있는 파일을 참조할 수 있다. - List 아큐먼트로 여러 파일을 참조할 수도 있다. @Controller public class FileController { @GetMapping("/file") public String fileUploadForm() { return "files/index"; } @PostMapping("/file") public String fileUpload(@RequestParam MultipartFile file, RedirectAttributes attributes) { //..
-
핸들러 메소드 12부 - FlashAttributesSPRING/스프링 MVC 2021. 7. 9. 01:09
주로 리다이렉트시에 데이터를 전달할 때 사용한다. 데이터가 URI에 노출되지 않는다. 임의의 객체를 저장할 수 있다. 보통 HTTP 세션을 사용한다. 리다이렉트 하기 전에 데이터를 HTTP 세션에 저장하고 리다이렉트 요청을 처리 한 다음 그 즉시 제거한다. RedirectAttributes를 통해 사용할 수 있다. @Controller @SessionAttributes("event") public class SampleController2 { // 이름 Form 화면 @GetMapping("/events/form/name") public String eventsForm(Model model, HttpSession httpSession) { model.addAttribute("event",new Event..
-
핸들러 메소드 11부 RedirectAttributesSPRING/스프링 MVC 2021. 7. 8. 18:49
리다이렉트 할 때 기본적으로 Model에 들어있는 primitive type 데이터는 URI 쿼리 매개변수에 추가된다. 스프링 부트에서는 이 기능이 기본적으로 비활성화 되어 있다. Ignore-default-model-on-redirect 프로퍼티를 사용해서 활성화 할 수 있다. 원하는 값만 리다이렉트 할 때 전달하고 싶다면 RedirectAttributes에 명시적으로 추가할 수 있다. 리다이렉트 요청을 처리하는 곳에서 쿼리 매개변수를 @RequestParam 또는 @ModelAttribute로 받을 수 있다. @Controller @SessionAttributes("event") public class SampleController2 { // 이름 Form 화면 @GetMapping("/events/..
-
핸들러 메소드 10부: @SessionAttributeSPRING/스프링 MVC 2021. 7. 5. 23:33
@SessionAttribute - HttpSession을 사용할 때 비해 Type Conversion을 자동으로 지원하기 때문에 편리한 점이 존재함. - HttpSession을 이용하여 Session을 세팅. - @SessionAttribute는 인터셉터 또는 서블릿필터 등에서 만들어 준 세션 데이터에 접근할 때 사용 @SessionAttributes - @SessionAttributes는 해당 Controller 내에서 동작 - 해당 컨트롤러 안에서 다루는 특정 모델 객체를 세션에 넣고 공유할 때만 사용 인터셉터 걸릴 때마다 현재 시간을 세션에 set함. public class VisitTimeInterceptor implements HandlerInterceptor { @Override public..
-
핸들러 메소드 9부 멀티 폼 서브밋SPRING/스프링 MVC 2021. 7. 5. 22:43
세션을 사용해서 여러 폼에 걸쳐 데이터를 나눠 입력 받고 저장하기 1. 이벤트 이름 입력받고 Submit 2. 이벤트 제한 인원 입력 받고 Submit 3. 이벤트 목록 페이지 - 완료된 경우에 세션에서 모델 객체 제거하기 sessionStatus.setComplete(); @Controller @SessionAttributes("event") public class SampleController2 { // 이름 Form 화면 @GetMapping("/events/form/name") public String eventsForm(Model model, HttpSession httpSession) { model.addAttribute("event",new Event()); return "/events/fo..
-
핸들러 메소드 8부: @SessionAttributesSPRING/스프링 MVC 2021. 7. 4. 13:06
@SessionAttributes : 모델 정보를 HTTP 세션에 저장해주는 애노테이션 - HttpSession을 직접 사용할 수도 있음 - 이 애노테이션에 설정한 이름에 해당하는 모델 정보를 자동으로 세션에 넣어준다. - @ModelAttribute는 세션에 있는 데이터도 바인딩한다. - 여러 화면(또는 요청)에서 사용해야 하는 객체를 공유할 때 사용한다. 예시 : 첫번째 form에서 입력한 개인정보, 두번째 form에서 입력한 주소정보, 세번째 form에서 입력한 기타정보 등 다음 form 으로 가기 전에, 이미 입력한 정보를 세션에 담아둔다. SessionStatus를 사용해서 세션 처리 완료를 알려줄 수 있다. - sessionStatus.setComplete() : 폼 처리 끝나고 세션을 비울 ..