私は Spring Portlet MVC を初めて使用しますが、ここ数日、一生懸命勉強してきました。私の問題のコンテキストは次のとおりです
- 単一のコントローラーを備えた Spring Portlet MVC ポートレットがあります。
- ポートレットは、ユーザーがリソースにアクセスしたいときはいつでも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;
}
ViewController クラス
@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();
.
.
}
}
リクエストがあれば、コードに関する詳細情報を提供する準備ができています。