Liferayテーマ(速度テンプレート)でカスタムサービスまたはLiferayサービスを使用するをオンにしましたか?
カスタムメソッドはそのまま正常に機能しています。しかし、私にはいくつかの特定の要件があります。
PortletSessionオブジェクトまたはRenderRequestをCustomメソッドに渡す方法を知っている場合はお知らせください。
例えば
次のインターフェイスを作成しようとしました。
package com.myTool;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
public interface MyTest{
public String getUserCountry(PortletSession portletSession);
public String getUserCountry(RenderRequest request);
}
インターフェイスを実装するクラスには、次のメソッドがあります。
public String getUserCountry(PortletSession portletSession) {
try {
myUtil.setPortletSession(portletSession);
return "Success";
}
catch (Exception e) {
e.printStackTrace();
return "exception-portletSession";
}
};
public String getUserCountry(RenderRequest request) {
try {
myUtil.setPortletSession(request.getPortletSession());
return "Success request";
}
catch (Exception e) {
e.printStackTrace();
return "exception-renderRequest";
}
};
私は運が悪かった次の方法を試しました:
1)
#set($currentProfileUtil = $utilLocator.findUtil("myportlets-1.0-SNAPSHOT", "com.myTool.MyTest"))
#set($result = $currentProfileUtil.getUserCountry($request.getAttribute("javax.portlet.response")))
$result
2)
#set($currentProfileUtil = $utilLocator.findUtil("myportlets-1.0-SNAPSHOT", "com.myTool.MyTest"))
#set($result = $currentProfileUtil.getUserCountry($request.get("portlet-session")))
$result
3)
#set($currentProfileUtil = $utilLocator.findUtil("myportlets-1.0-SNAPSHOT", "com.myTool.MyTest"))
#set($result = $currentProfileUtil.getUserCountry($request.getSession()))
$result
4)
#set($currentProfileUtil = $utilLocator.findUtil("myportlets-1.0-SNAPSHOT", "com.myTool.MyTest"))
#set($result = $currentProfileUtil.getUserCountry($request.getSession()))
$result
PS「なぜこれが必要なのか」と言わないでください。--PortletSessionまたはPortletSessionを取得できるオブジェクトを送信する方法に関するアイデアを提供するだけです。ありがとう