javascript - 如何让 Liferay 的 Javascript PortletURL 模块与友好的 URL 映射一起使用?

标签 javascript liferay portlet liferay-6

我已经为 Liferay portlet 设置了友好的 URL 路由,当我使用标准 JSP 标记生成 URL 时,它工作正常,如下所示:

<portlet:renderURL var="resetUrl">
    <portlet:param name="start" value="5" />
</portlet:renderURL>

根据我的映射,它会生成一个可爱的 URL,例如:

localhost:8080/web/guest/welcome/-/myportlet/5

但是当我使用 JavaScript PortletURL 模块生成 URL 时,我得到了完整的不友好 URL。例如:

var filterUrl = Liferay.PortletURL.createRenderURL();
filterUrl.setPortletId("<%= portletDisplay.getId() %>");
filterUrl.setParameter("start", "5");
location.href = filterUrl;

将生成

localhost:8080/web/guest/welcome?p_p_id=myportlet_WAR_MyPortletportlet&p_p_lifecycle=0&myportlet_WAR_MyPortletportlet_start=5

所以我的问题是: 如何从 JavaScript 生成友好的 URL?

最佳答案

没有简单的方法可以做到这一点。您必须重写portal_url.js 和PortletURLAction.java。 另一种选择是编写您自己的 portlet,它可以根据需要生成 URL 并通过 AJAX 访问它。

关于javascript - 如何让 Liferay 的 Javascript PortletURL 模块与友好的 URL 映射一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9807011/

相关文章:

java - 如何通过liferay中的portlet conf选项卡修改属性文件?

javascript - Node.js 多页面爬虫

javascript - 用于删除包含指定集中*不*字符的单词的正则表达式

java - 如何向指定的提供者发送证书并在另一端接收它?

java - 如何上传相对目录下的文件

java - 如果用户单击 IE 或 websphere Portal 上的 mozilla 中的新选项卡,如何启动新 session ?

java - 我如何知道 url 导致调用 portlet spring mvc liferay 的 @RenderMapping render() 方法?

javascript - 单击时使用 Javascript 显示/隐藏表行

javascript - AngularJS $q.all,无论错误如何触发

liferay - 如何修改出现在 Asset Publisher portlet 上的链接?