Controller에서 Session 저장해놓은 정보를 FreeMaker에서 어떻게 사용해야 하느지 원 한참을 구글링 했다.
freemaker.ext.servlet.FreeMarkerServlet 에 보면
아래와 같이 상수로 정의해 놓은게 힌트다.
- public static final String KEY_REQUEST = "Request";
- public static final String KEY_REQUEST_PARAMETERS = "RequestParameters";
- public static final String KEY_SESSION = "Session";
- public static final String KEY_APPLICATION = "Application";
- public static final String KEY_JSP_TAGLIBS = "JspTaglibs";
템플릿에서 ${RequestParameters} 이런식으로 사용하면 되겠다.
로그인 정보를 담았다면 이렇게 사용가능하다.
<#if ! Session.userLoginInfo?exists>
<a href='/login.do'>로그인하기</a>
<#else>
${Session.userLoginInfo.userId}
</#if>
${Session.userLoginInfo.userId} 보면
userLoginInfo는 세션변수 인데 담긴값은 Member 객체를 담았다. 템플릿 형태에서는 형변환 없이 바로 사용이 가능하다.