Liferay 6.2 を使用しています。User-My Account ページにフィールドを追加するためのフックを作成しました。これらのフィールドのキーを押すと、ajax 呼び出しを呼び出す必要があります。私はライフリーサービスのオーバーライドを読み、同じアプローチに従おうとしています:これは、ユーザーを新しいフィールドで更新するために機能します。
ただし、ajax 呼び出しの場合、サーブ リソース メソッドをどこかでオーバーライドする必要があります。しかし、正確に serve resource() を呼び出す場所がわかりません。
私のアプローチは次のとおりです。
details.jsp で
<portlet:resourceURL var ="userProfileURL"></portlet:resourceURL>
js の場合: AUI io リクエストを使用して ajax を呼び出します: モードをパラメーターとして渡して、それが serveResource 内にあるかどうかを確認します。
しかし、リソースを提供する前に、userProfileURL が定義されていないというエラーが表示されます。それに必要なインポートもjspに含めました。
UserServiceWrapper を拡張する userServiceImpl クラスで、serveResource をオーバーライドしようとしました。
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws PortletException {
String mode = ParamUtil.getString(resourceRequest,"mode")
if(mode.equals("getData")
{
// do needed processings & return data
}
else {
// super.serveResource(resourceRequest, resourceResponse);
}
しかし、次のようなエラーが表示されます。
メソッド serveResource(ResourceRequest, ResourceResponse) はタイプ UserServiceWrapper に対して未定義です
ユーザー アカウント ページのフックで ajax 呼び出しを行う方法はありますか、それとも間違った場所で上書きしていますか?