예제를 이제 살짝쿵 고쳐봐야겠다.
우선 인수를 받아서 처리하는 형태로 바꿔보자.
이전 소스
@RequestMapping(value="/", method=RequestMethod.GET)
public String home() {
logger.info("Welcome home!");
return "home";
}
뷰에서 아이디를 입력받으면 그 아이디를 다시 Echo 해줘서 뷰에 전달해주는 예제로 변경해보자. 우선 함수의 시그니처를 변경해보자.
public String home(String id) { ..}
이를 클라이언트로 부터 id를 어떻게 전달 받도록 지정해 보자. @RequestParam 에노테이션을 사용하자.
public String home(@RequestParam String id) {..} (사실 @RequestParam 생략가능하다.)
id를 다시 뷰에게 전달하기 위하여 ModelMap이라는 클래스를 사용한다. 이를 위해 메소드 시그니처를 다음과 같이 변경한다.
public String home(@RequestParam String id, ModelMap model)
ModelMap에 들어 있는 객체를 뷰 에서 참조할 수 있게 된다.
model.put("echoId", id);
다음과 같이 수정한다.
@RequestMapping(value="/", method=RequestMethod.GET)
public String home(@RequestParam String id, ModelMap model) {
logger.info("Welcome home!");
model.put("echoId", id);
return "home";
}
뷰 (home.jsp) 에서 echoId를 출력해보자.
변경된 home.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
${echoId}, Hello world!
</h1>
</body>
</html>
웹브라우저에서 확인해보자.
http://localhost:8080/mysample/?id=inking007