0

我有两个定义了一组控制器的 portlet。我们正在使用 Spring MVC。在 View ie JSP 中,我们定义了一些 resourceUrls,例如

<portlet:resourceURL var="ListResourceUrl" id="getList"  ></portlet:resourceURL>

这指的是我定义为的控制器

@ResourceMapping("getList")
    @ResponseBody
public ModelAndView getList(ResourceRequest request,ResourceResponse response) throws IOException {

.........
}

现在我想定义另一个resourceUrl 引用另一个portlet 中定义的控制器。我怎样才能做到这一点?

4

2 回答 2

1

请尝试使用liferay-portlet-ext.tld而不是liferay-portlet.tld.

这里的标签数量几乎相同,但您可以添加一些额外参数。

liferay-portlet:resourceURL 与 portlet:resourceURL 类似,只是它具有附加属性 plid、portletName、anchor 和 encrypt。

因此,您可以使用以下内容:

<%@taglib prefix="liferay-portlet" uri="http://liferay.com/tld/portlet" %>

<liferay-portlet:resourceURL id="getList" var="ListResourceUrl" 
                             portletName="portletname_WAR_portletname" />

portlet 的实际名称在哪里portletname_WAR_portletname,这是 Liferay 特有的。

于 2013-03-01T10:38:11.907 回答
0

如果要在控制器中以编程方式创建 PortletURL,请使用 PortletURLFactoryUtil。下面的代码片段应该给你一个想法:

HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(request);
String portletId = "...";
Layout page = LayoutLocalServiceUtil.getLayoutByFriendlyUrl(group, "...");
PortletURL portletURL = PortletURLFactoryUtil.create(
        httpRequest, portletId, page.getPlid(), PortletRequest.RESOURCE_PHASE);
于 2013-03-12T22:00:42.043 回答