본문 바로가기

분류 전체보기116

스프링 ViewResolver 스프링 컨트롤러는 뷰에 의존적이지 않다. 컨트롤러는 아래 코드와 같이 결과를 생성할 뷰의 이름만 지정할 뿐이다. HTML 삽입 미리보기할 수 없는 소스 컨트롤러가 지정한 뷰 이름으로부터 응답 결과 화면을 생성하는 View 객체는 ViewResolver가 구한다. 💡. ViewResolver 인터페이스 HTML 삽입 미리보기할 수 없는 소스 ViewResolver Interface는 위와 같이 정의되어 있다. ViewResolver는 뷰 이름과 지역화를 위한 Locale을 파라미터로 전달받으며, Mapping되는 View 객체를 리턴한다. 만약, Mapping되는 View 객체가 존재하지 않으면 null을 리턴한다. 💡. View 객체 모든 뷰 클래스는는 View Interface를 구현하고 있으며, Vi.. 2022. 10. 19.
HandlerInterceptor : 요청 가로채기 Spring이 기본적으로 제공하는 HandlerMapping은 HandlerInterceptor를 이용해서 컨트롤러가 요청을 처리하기 전과 처리한 후에 알맞은 기능을 수행할 수 있도록 하고 있다. 조건에 따라 컨트롤러에 요청을 전달하지 않고 싶거나 컨트롤러가 요청을 처리한 후에 ModelAndView 객체를 조작하고 싶은 경우에 HandlerInterceptor를 사용하면 된다. HandlerInterceptor 인터페이스는 세 개의 메서드를 정의하고 있다. boolean preHandle(HttpServletRequest request, HttpServletResponse, Object handler) void postHandle(HttpServletRequest request, HttpServletR.. 2022. 10. 19.
@InitBinder 어노테이션 스프링은 기본적으로 문자열을 지정한 타입의 값으로 변환할 때 Java빈의 Property Editor를 사용한다. 스프링 MVC가 HTTP 요청 파라미터를 객체의 프로퍼티 값으로 저장할 때 사용하는 WebDataBinder 역시 내부적으로 PropertyEditor를 사용하게 된다. 🎈. @InitBinder Annotation을 이용한 Date 타입 변환 처리 값이 '2021-12-24'인 HTTP 요청 파라미터를 java.util.Date 타입의 프로퍼티에 저장하고 싶을 때가 있는데, 이 경우 스프링 MVC의 WebDataBinder에 커스텀 PropertyEditor를 등록해주면 된다. 스프링은 java.util.Date 타입에 대한 PropertyEditor인 CustomDateEditor를 제공.. 2022. 10. 18.
스프링 Multipart : 파일 업로드 처리 쇼핑몰 등의 웹 사이트 구축 중 파일 업로드가 필요한 경우 HTML 폼의 속성을 multipart/form-data로 설정해야 한다. HTML 삽입 미리보기할 수 없는 소스 인코딩 타입이 Multipart인 경우 파라미터나 업로드 한 파일을 구하려면 전송 데이터를 알맞게 처리해 주어야 한다. 스프링은 Multipart 지원 기능을 제공하고 있기 때문에 이 기능을 이용하면 추가적인 처리 없이 Multipart 지원 기능을 이용해서 업로드 한 파일을 처리할 수 있다. 🎈. MultipartResolver 설정 Multipart 지원 기능을 사용하려면 먼저 MultipartResolver를 스프링 설정 파일에 등록해 주어야 한다. MultipartResolver는 Multipart 형식으로 데이터가 전송된 경.. 2022. 10. 18.
스프링 MultipartFile 인터페이스 사용 org.springframework.web.multipart.MultipartFile 인터페이스는 업로드 한 파일 정보 및 파일 데이터를 표현하기 위한 용도로 사용된다. MultipartFile Interface가 제공하는 주요 메서드는 다음과 같다. 메서드 설명 String getName() 파라미터 이름을 구한다. String getOriginalFilename() 업로드 한 파일의 이름을 구한다. boolean isEmpty() 업로드 한 파일이 존재하지 않을 경우 true를 리턴 long getSize() 업로드 한 파일의 크기를 구한다. byte[ ] getBytes() throws IOException 업로드 한 파일의 데이터를 구한다. InputStream getInputStream() th.. 2022. 10. 18.
스프링 캐릭터 인코딩 처리 필터 설정 요청 파라미터의 캐릭터 인코딩이 ISO-8859-1이 아닌 경우, request.setCharacterEncoding() 메서드를 사용해서 요청 파라미터의 캐릭터 인코딩을 알맞게 설정해 주어야 한다. request.setCharacterEncoding("UTF-8"); 모든 컨트롤러에서 위 Code를 실행할 수도 있지만, 그것 보다는 Servlet 필터를 이용해서 원하는 요청에 위 Code를 적용하는 것이 더 편리하다. 스프링은 요청 파라미터의 캐릭터 인코딩을 설정할 수 있는 필터 클래스인 CharacterEncodingFilter Class를 제공하고 있다. 다음과 같이 web.xml 파일에 CharacterEncodingFilter 클래스를 설정함으로써 요청 파라미터의 캐릭터 인코딩을 손쉽게 설정할 .. 2022. 10. 17.