0

我正在尝试使用 Velocity 在 Liferay 模板中创建链接。

我的代码如下,基于网上的几个例子:

#set ($plid = $getterUtil.getLong($request.get('theme-display').get('plid')))

#set ($u = $portletURLFactory.create($request,"1",$plid,"RENDER_PHASE"))
$u.setParameter("struts_action","/asset_publisher/applyForJob");

<a href="$u">yyy</a>

我得到了 plid 值,但我的 URL 将仅以 $u 结尾,似乎该$portletURLFactory.create()方法没有正确解释。

有任何想法吗?谢谢!

4

1 回答 1

1

您是否尝试在 Web 内容模板中执行此操作?在这种情况下,它将不起作用,因为您无权访问真正的 http 请求对象。您需要改为使用 javascript 创建此链接。这是一个代码片段。

<script type="text/javascript">
function createURL() {
    AUI().ready('liferay-portlet-url', function(A) {
        var renderURL = Liferay.PortletURL.createRenderURL();
        renderURL.setParameter("struts_action","/asset_publisher/applyForJob");
        renderURL.setPortletId("1");
        renderURL.setPortletMode("view");
        renderURL.setWindowState("normal");
        window.location = renderURL.toString();
    });
}
</script>
<a href="javascript: createURL(); ">Go</a>
于 2013-09-02T10:44:04.693 回答