기타/Spring MVC

스프링 - 컨트롤러를 이용해 view jsp 페이지를 여는 방법

공부하는리아 2021. 2. 3. 17:27

일단 컨트롤러를 사용하려면 servlet-context.xml 안에 해당 컨트롤러가 들어있는 패키지 경로를

표시해주어야한다.

그렇지 않으면 경로를 찾을 수 없어서 에러가 발생 

<context:component-scan base-package="패키지경로" />

 

아무런 class를 하나 만들어준다

그리고 컨트롤러 표시를 달아주기

package com.swj.spring_ex;

@Controller
public class MyController { 

}

 

 

그 다음 만든 페이지를 @RequestMapping 이용해 맵핑시켜준다.

@Controller
public class MyController {
	
	@RequestMapping("/content/contentView")
	public String contentView(Model model) {
    
    	//모델 객체
        //데이터 설정만 가능하다
        // model.addAttribute(변수이름, 변수에 넣을 데이터값)
		model.addAttribute("id", "아이디입니다");
		return "/content/contentView";
	}
    
}   

 

 

여기서 return 값과 맵핑값은 루트 뒤 경로를 써준다 

root/리턴값 이렇게 들어간다.

 

package com.swj.spring_ex;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/board")
public class SampleRequest {
	
	@RequestMapping("/view")
	public String view() {
		return "/board/view";
	}
}

맵핑은 클래스에도 적용 가능하다.

마찬가지로 return에는 /board를 써줘야 알맞게 찾아간다.

 

 

객체를 만드는 법은 Model, ModelAndVeiw가 있는데 사용법은 비슷하다.

이게 나중에 수정이 저 편할 것 같기도

@Controller
public class MyController {

	@RequestMapping("/model/modelView")
	public ModelAndView modelView(Model model) {
		
        //데이터와 뷰를 동시에 설정가능
		ModelAndView mv = new ModelAndView();
		mv.addObject("id", "123465"); //뷰의 이름으로 보낼 데이터 값
		mv.setViewName("/model/modelView"); //뷰의 이름
		return mv;
	}
}