신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

스프링 MVC 컨트롤러 (Controller)

기본적인 흐름은 

client가 요청을 하면, @Controller에 진입한다.

컨트롤러는 요청에 대한 작업을 수행하고,

뷰쪽으로 데이터를 전달한다.

 

컨트롤러 클래스 제작 순서

  • @Controller를 이용해서 클래스를 생성한다.
  • @RequestMapping을 이용해, view의 요청 경로 지정한다.
  • 요청 처리 메소드(로직) 구현한다.
  • 뷰 이름 리턴한다.

예를들어,

@Controller // 컨트롤러 지정
public class HomeController {
    
    // 뷰의 요청 경로 지정
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        
        // 로직 수행
        logger.info("Welcome home! The client locale is {}.", locale);
        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
        String formattedDate = dateFormat.format(date);
        
        // Model 객체를 이용해서, view로 Data 전달
        model.addAttribute("serverTime", formattedDate );
        
        return "home"; // 뷰 파일 리턴
    }
}

View의 요청 경로(Path) 설정하기

@RequestMapping

어노테이션을 이용해서, view 폴더안의

내가 목표로 하는 view의 경로(path)를 넣는다.

 

예를들어,

view.jsp가 아래와 같은 경로를 가질때

view.jsp 위치

아래와 같이 /board/view 라고 설정한다.

@RequestMapping("/board/view") // 요청경로(path)

그리고, return 값도 똑같이 board/view로 설정 한다.

return "board/view";  // 뷰페이지 이름

 

Model 객체 사용법

Model 객체를 파라미터로 받아서 데이터를 뷰로 넘길 수 있다.

@RequestMapping("/board/view")
public String view(Model model) {
    
    // 데이터만 설정이 가능
    model.addAttribute("id", "hongku");
    
    return "board/view";
}
 

Model 객체를 파라미터로 받는다.

model.addAttribute("변수이름", "변수에 넣을 데이터값");

 

model.addAttribute를 이용해서, 넘길 데이터의 이름과 값을 넣는다.

그러면, 스프링은 그 값을 뷰쪽으로 넘겨준다.

 

${변수이름}

 

뷰(.jsp 파일)에서는 ${}를 이용해서 값을 가져온다.

 

예를들어,

당신의 ID는 ${id} 입니다.

jsp 파일 내용

 

브라우저 결과 화면

ModelAndView 객체 사용법

Model 객체와 크게 다르지 않다.

@RequestMapping("/board/content")
public ModelAndView content() {

    // 데이터와 뷰를 동시에 설정이 가능
    ModelAndView mv = new ModelAndView();
    mv.setViewName("/board/content"); // 뷰의 이름
    mv.addObject("data", "12341234"); // 뷰로 보낼 데이터 값
    
    return mv;
}

 

반환값으로 ModelAndView 객체를 반환한다.

 

ModelAndView 객체를 선언 및 생성한다.

 

뷰의 이름을 설정해줘야 하는데,

setViewName() 메소드를 이용한다.

mv.setViewName("뷰의 경로");

 

데이터를 보낼때는

addObject() 메소드를 이용한다.

mv.addObject("변수 이름", "데이터 값");

 

그리고,

return mv;

 

ModelAndView 객체를 반환한다.

 

jsp도 똑같이 ${}를 이용한다.

Data : ${data}

jsp 파일 내용
브라우저 결과 화면

 

Reference

※ 이 글은 Seoul Wiz - '실전 Spring 강좌'를 요약하여 작성하였습니다.

 

관련 글

2018/03/14 - [WEB/SpringMVC] - SpringMVC :: 스프링 MVC 기초, 스프링MVC 프로젝트 만들기

 

SpringMVC :: 스프링 MVC 기초, 스프링MVC 프로젝트 만들기

스프링이 유명하게 된 계기는 아마도 웹 어플리케이션 제작에 적용되면서, 웹 프레임워크로서 우수성이 인정되었기 때문이다. 심지어는 스프링 = web 이다. 라고 할 정도로 우수한 평가를 받고 있다. Spring MVC..

hongku.tistory.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기