Spring RequestParams 및 PathVariables 유효성 검사
1. 구성 Java Validation API를 사용하려면 hibernate-validator와 같은 JSR 303 구현을 추가해야 한다. <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validato...
1. 구성 Java Validation API를 사용하려면 hibernate-validator와 같은 JSR 303 구현을 추가해야 한다. <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validato...
1. Enums을 요청 매개변수로 사용 예제에 대한 Enums을 정의한다. public enum Modes { ALPHA, BETA; } 그런 다음 이 열거형을 Spring 컨트롤러의 RequestParameter로 사용할 수 있다. @GetMapping("/mode2str") public String getStringToMode(@Re...
1. @PathVariable 매개변수를 바인딩하는 방법 기본적으로 Spring은 처리기 메서드에서 @PathVariable로 주석이 달린 모든 매개변수를 URI 템플릿의 해당 변수와 바인딩하려고 시도한다. Spring이 실패하면 해당 핸들러 메소드에 요청을 전달하지 않는다. 예를 들어, id 경로 변수를 선택 사항으로 만들려고 시도하는(실패한) 다...
1. 사용 사례 JSON 문서로 표현되는 HTTP 고객 리소스의 예이다. { "id":"1", "telephone":"001-555-1234", "favorites":["Milk","Eggs"], "communicationPreferences": {"post":true, "email":true} } 이 고객의 전화번...
1. Spring 뷰 기술 Spring MVC 애플리케이션의 문제가 한 뷰 기술에서 다른 뷰 기술로 완전히 분리되어 있다는 점을 고려하면 기본적으로 구성 문제이다. 각 뷰 유형을 렌더링하려면 각 기술에 해당하는 ViewResolver 빈을 정의해야 한다. 이는 일반적으로 JSP 파일을 반환하는 것과 동일한 방식으로 @Controller 매핑 메서드에...
1. Apache Tiles Apache Tiles는 Composite 디자인 패턴을 기반으로 구축된 무료 오픈 소스 템플릿 프레임워크이다. 컴포지트 디자인 패턴(Composite Design Pattern)은 객체를 트리 구조로 구성하여 전체 부분 계층을 표현하는 구조 패턴의 일종으로, 개별 객체와 객체의 구성을 균일하게 취급하는 패턴이다. 즉, ...
1. FreeMarker FreeMarker는 Apache Software Foundation의 Java 기반 템플릿 엔진이다. 다른 템플릿 엔진과 마찬가지로 FreeMarker는 MVC 패턴을 따르는 애플리케이션에서 HTML 웹 페이지를 지원하도록 설계되었다. 2. 메이븐 의존성 Maven 기반 프로젝트이므로 먼저 pom.xml에 필요한 종속성을 ...
1. Velocity Velocity는 일반 텍스트 파일, SQL, XML, Java 코드 및 기타 여러 유형으로 작업할 수 있는 Apache Software Foundation의 템플릿 엔진이다. 2. 메이븐 의존성 다음 종속성을 사용하여 Velocity 지원을 활성화한다. <dependency> <groupId>or...
1. 메이븐 의존성 종속성을 추가한다. <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.7.RELEASE</version&...
1. Handleradapter란 HandlerAdapter는 기본적으로 Spring MVC에서 매우 유연한 방식으로 HTTP 요청 처리를 용이하게 하는 인터페이스이다. 이는 메소드를 특정 URL에 매핑하는 HandlerMapping과 함께 사용된다. 그러면 DispatcherServlet은 HandlerAdapter를 사용하여 이 메소드를 호출한...