본문 바로가기

분류 전체보기

(12)
Spring classpath 경로확인과 경로 지정하기 아래 예외 발생 원인은 knights.xml 파일을 찾지 못해서이다. 따라서, classpath의 경로를 지정하고 확인해야 xml파일을 찾을 수 있을것이다. 아래 과정을 통해서 Spring의 classpath경로의 지정과 경로를 확인 해보자. 📌 classpath의 경로 지정 ApplicationContext를 읽기 위해서 를 설정하고, 의 classpath: 에 knight.xml을 읽어올수 있게 지정한다. 📌 classpath의 경로 확인 Spring의 classpath 경로를 확인하려면, 해당 프로젝트를 우클릭하여 [Build Path] - [Configure Build Path...] - [Java Build Path] 에서 Source 탭을 클릭하면, 아래 처럼 나타날텐데, Source fold..
(2021.08.30)스프링 공부 5일차. 뷰 영역 구현 앞서 공부한 내용 📌 컨트롤러는 최종적으로 결과를 출력할 뷰와 뷰에 전달할 객체를 담고 있는 ModelAndView 객체를 리턴한다. 📌 DispatcherServlet은 ViewResolver를 사용하여 결과를 출력할 View 객체를 구하고, 구한 View 객체를 이용하여 내용을 생성한다. Client가 Server(스프링)에게 요청하면 View 뿐만 아니라, xml, json, excel, pdf로 클라이언트의 요청을 처리하여 보여줄 수 있다. 1.2. ViewResolver 컨트롤러는 아래 코드와 같이 결과를 생성할 뷰의 이름만 지정할 뿐, 뷰에 의존적이지 않다. @Controller public class HelloController { @RequestMapping("/hello.do") publ..
스프링 공부 4일차. 모델 생성하기 @RequestMapping 어노테이션이 적용된 파라미터나 리턴타입으로 ModelAndView, Model, Map, 커맨드 객체 등을 이용해서 모델을 뷰에 전달하게 된다. 컨트롤러가 이들 Class를 이용해서 모델을 어떻게 뷰에 전달하는지 살펴보자. 뷰에 전달되는 모델 데이터 @RequestMapping 메서드가 ModelAndView, Model, Map을 리턴하는 경우 이들에 담긴 모델 데이터가 뷰에 전달된다. 또한, 추가로 다음의 항목도 뷰에 함께 모델로 전달된다. 커맨드 객체 @ModelAttribute 어노테이션이 적용된 메서드가 리턴한 객체 메서드가 Model, Map, ModelMap 타입의 파라미터를 통해 설정된 모델 먼저 필요한 클래스들을 생성하고, 아래 코드에서는 다양한 방법으로 모델..
스프링 공부 3일차. 컨트롤러 메서드의 리턴 타입 컨트롤러 메서드의 리턴 타입은 ModelAndView를 비롯한 몇 가지 리턴 타입을 가질 수 있으며, 이들 리턴 타입은 다음과 같다. 리턴타입 설명 ModelAndView 뷰 정보 및 모델 정보를 담고 있는 ModelAndView 객체 Model 뷰에 전달할 객체 정보를 담고 있는 Model을 리턴한다. 이때 뷰 이름은 요청 URL로부터 결정 된다. (RequestToViewNameTranslator를 통해 뷰 결정) Map 뷰에 전달할 객체 정보를 담고 있는 Map을 리턴한다. 이때 뷰 이름은 요청 URL로부터 결정 된다. (RequestToViewNameTranslator를 통해 뷰 결정) String 뷰 이름을 리턴한다. View 객체 View 객체를 직접 리턴. 해당 View 객체를 이용해서 뷰를..
스프링 공부 3일차. 컨트롤러 메서드의 파라미터 타입 컨트롤러의 @RequestMapping 어노테이션이 적용된 메서드는 커맨드 클래스 뿐만 아니라 다양한 타입의 파라미터를 가질 수 있다. 전달 가능한 파라미터 타입은 다음과 같다. 파라미터 타입 설명 HttpServletRequest, HttpServletResponse, HttpSession Sevlet API java.util.Locale 현재 요청에 대한 Locale InputStream, Reader 요청 컨텐츠에 직접 접근할 때 사용 OutputStream, Writer 응답 컨텐츠를 생성할 때 사용 @PathVariable Annotation 적용 파라미터 URI 템플릿 변수에 접근할 때 사용 @RequestParam Annotation 적용 파라미터 HTTP 요청 파라미터를 Mapping @R..
스프링 공부 2일차. HTML폼과 커맨드 객체(2) 예제를 통해서 HTML폼에 입력된 데이터를 커맨드 객체를 이용해서 전달 받아보자. 앞에서 설명했듯이, 스프링은 자바빈 클래스 프로퍼티이름과 HTML폼의 항목 이름이 일치할 경우 폼에 입력한 값을 해당 자바빈 클래스의 프로퍼티값으로 설정 해주는 기능을 제공한다고 했다. 이번에는 커맨드 객체를 List타입으로 받아 자바빈 클래스의 프로퍼티값에 설정해보자. 먼저 자바빈 클래스를 생성한다, 이번 예제에는 2개의 자바빈 클래스를 사용할 것인데, 겁 먹지 말자 우리에게는 스프링이라는 도구가 있으니까 HTML폼에서 입력한 데이터를 자바빈 클래스의 프로퍼티값에 설정하기 위해 생성한 자바빈 클래스 2개이다. 간단하게 살펴보면, 각각의 클래스에는 모두 String타입 3개의 변수와, 각각의 변수의 Setter, Gette..
스프링 공부 2일차. HTML폼과 커맨드 객체 커맨드 객체(Command Object) == Java Bean SPRING MVC는 HTML 폼에 입력한 데이터를 자바빈 객체를 이용해서 전달받을 수 있다. 예를 들어 아래의 코드와 같이 HTML폼의 항목 이름과 자바빈 클래스의 프로퍼티의 이름이 일치할 경우 폼에 입력한 값을 해당 자바빈 클래스의 프로퍼티값으로 설정해주는 기능을 제공한다. 제목 : 내용 : || 입력 항목의 이름과 일치하는 프로퍼티에 값이 저장 || public class NewArticleCommand { private String title; private String content; private int parentId; + Get과 Set메서드 HTML 폼과 자바빈 클래스를 매핑하고, @RequestMapping 어노테이션(An..
SPRING의 MVC 1. SPRING MVC의 주요 구성 요소 및 처리 흐름 1.1 SPRING MVC의 주요 구성 요소 구성요소 설명 DispatcherServlet 클라이언트의 요청을 전달 받는다. 컨트롤러에게 클라이언트의 요청을 전달하고 컨트롤러가 리턴한 결과 값을 View에 전달하여 알맞은 응답을 생성하도록 해준다. HandlerMapping 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할 지를 결정한다. Controller 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에 알려 준다. Struts의 Action과 동일한 역할을 수행한다. ModelAndView 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다. ViewResolver 컨트롤러의 처리 결과를 생성할 뷰를 결..