我正在使用 Liferay 6.2。我做了一个钩子来在用户我的帐户页面中添加一些额外的字段。在这些字段的按键上,需要调用 ajax 调用。我阅读了 lifery service override并尝试遵循相同的方法:它适用于使用新字段更新用户。
但是,对于 ajax 调用,我需要在某处覆盖服务资源方法。但我不确定在哪里调用服务资源()。
我的方法如下:
在 details.jsp
<portlet:resourceURL var ="userProfileURL"></portlet:resourceURL>
在 js 中:我使用 AUI io 请求调用 ajax:我将 mode 作为参数传递以检查它是否进入 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);
}
但我收到一条错误消息:
未为 UserServiceWrapper 类型定义方法 serveResource(ResourceRequest, ResourceResponse)
有什么方法可以在用户帐户页面的钩子中进行 ajax 调用,还是我在错误的地方过度使用?