我是 Spring Portlet MVC 的新手,但最近几天我一直在努力学习。我的问题的上下文如下
- 我有一个带有单个控制器的 Spring Portlet MVC portlet。
- Portlet 被配置为在用户想要访问资源的任何时候调用 HandlerInterceptor (方法“preHandleRender”)。
- 拦截器检查用户是否经过身份验证,如果没有,它会检索用户的 Liferay 凭据以管理许多其他 Web 服务的身份验证(现在不感兴趣)。
- 此后,拦截器将用户数据存储在 PortletSession中。
现在,我应该如何从控制器内部通过拦截器检索存储在 PortletSession 中的用户数据?
sessionInterceptor.preHandleRender
@Override
public boolean preHandleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception {
PortletSession session = request.getPortletSession(true);
.
.
.
session.setAttribute("userProfile", userProfileDomain,PortletSession.APPLICATION_SCOPE);
.
.
.
return true;
}
视图控制器类
@Controller("viewController")
@RequestMapping(value = "view")
public class ViewController {
//@Autowired
private WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
@RenderMapping
public String setModelAndView(RenderRequest request, ModelMap tgtModel) {
logger.debug("<< | >> Starting.");
PortletConfiguration conf = PortletConfiguration.getInstance();
.
.
}
}
如果需要,我准备提供有关我的代码的更多信息。