我想从 js 重定向到 liferay portlet 中的另一个 jsp 页面。我发现的想法是使用 renderurl。我发现可以帮助我迈出第一步的最佳代码是:
<a id="renderURLWithJS" href=""> This render URL link is created with Javascript</a>
<aui:script>
AUI().use('liferay-portlet-url', function(A) {
var param="Hello new jsp";
var renderUrl1 = Liferay.PortletURL.createRenderURL();
renderUrl1.setWindowState("<%=LiferayWindowState.NORMAL.toString() %>");
renderUrl1.setParameter("param",param);
renderUrl1.setParameter('mvcPath', 'display.jsp'); /* is this correct???*/
renderUrl1.setPortletMode("<%=LiferayPortletMode.VIEW %>");
A.one("#renderURLWithJS").set('href',renderUrl1.toString());
});
</aui:script>
但问题是我总是被重定向到同一个实际页面 (view.jsp),而不是我想要 display.jsp 的 jsp 页面。
有人知道我的代码有什么问题吗?
Liferay 需要知道您添加到 URL 的任何请求参数的目标 portlet - 否则它会忽略任何未知参数。目标 portlet 的 ID 定义为p_p_id
或者它是参数的前缀(在这种情况下,您可以为一个 URL 中的多个 portlet 定义参数)。
所以在你的情况下你必须设置renderUrl1.setPortletId('...your portlet id');
让您的 portlet 看到mvcPath
and param
.
除此之外mvcPath
必须是绝对的(以/
)并低于配置的templatePath
(默认为/
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)