1

我正在使用 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 调用,还是我在错误的地方过度使用?

4

0 回答 0