@CookieValue, @MVC(스프링컨트롤러쿠키사용예,카운터,Spring MVC)
@CookieValue :
HTTP쿠키 값을 HttpServletRequest등을 통해 읽을 필요없이 스프링 컨트롤러에서 파라미터로 전달 받을 수
있게해주며, 쿠키가 존재하지 않으면 오류가 발생하고
required 속성 값을 이용해 필수여부 설정도 가능하고, defaultValue 속성 값을 이용해서 기본값을 지정하는 것도
가능하다.
해당하는 쿠키가 없다면 다음과 같은 오류가 발생한다.
java.lang.IllegalStateException: Missing cookie value '쿠키이름' of type
java.lang.String
이를 해결하기 위해서 defaultValue를 사용하면 된다.
@RequestMapping("/hello.html")
public String hello(@CookieValue(value = "쿠키이름", defaultValue =
"oraclejavacommunity") String var) {
......
}
[예 : 쿠키를 이용한 간단한 카운터]
컨트롤러
@Controller
public class HomeController {
@RequestMapping(value = "/hello.html")
public String hello(
@CookieValue(value = "onjCounter",defaultValue = "0") Integer
onjCounter,
HttpServletResponse response) {
//쿠키값을 읽어 우선 counter, 1증가
onjCounter++;
// 응답에 쿠키를 셋팅
Cookie cookie = new Cookie("onjCounter",
onjCounter.toString());
response.addCookie(cookie);
// view이름
return "home";
}
}
JSP
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%>
<html>
<head>
<title>Spring MVC Cookie example</title>
</head>
<body>
<h1>OracleJavaCommunity </h1>
<h1>Spring Cookie Example</h1>
Page hit counter: <b> ${cookie.onjCounter.value}
</b>
</body>
</html>
댓글 없음:
댓글 쓰기