Liferay portlet:从javascript重定向到其他jsp页面
Liferay portlet: redirect to an other jsp page from javascript
我想从js重定向到生活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),而不是我想要的jsp页面display.jsp。
有人知道我的代码有什么问题吗?
Liferay需要知道您添加到URL中的任何请求参数的目标portlet—否则它会忽略任何未知参数。目标portlet的ID要么定义为p_p_id
,要么是参数的前缀(在这种情况下,您可以在一个URL中为多个portlet定义参数)。
因此,在您的情况下,您必须设置renderUrl1.setPortletId('...your portlet id');
以让您的portlet看到mvcPath
和param
。
另外,mvcPath
必须是绝对的(以/
开头),并且低于配置的templatePath
(默认为/
)。
试试这个:
在您的JSP中->
<portlet:renderURL var="myRenderURL">
<portlet:param name="jspName" value="display.jsp" />
</portlet:renderURL>
<aui:a href="#" cssClass="myLink" label="Click me" />
<aui:script>
A.one('.myLink').on('click', function () {
window.location.href = '${myRenderURL}';
});
</aui:script>
然后在java portlet类中->
@Override
public void doView(RenderRequest request, RenderResponse response)
throws IOException, PortletException {
String jspName = ParamUtil.getString("jspName", "view.jsp");
include("path/to/your/jsp/" + jspName, request, response);
}
最后一点:从Liferay 6.2开始,使用上面OP中提到的javascript方法创建的portlet url将
- 不包含认证令牌(p_auth, p_p_auth)
- 不被门户转换为友好的url。
请参阅Liferay文档
相关文章:
- 使用JSP从服务器检索和显示图像
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 在jsp中,隐藏一个基于其他具有日期选择器的字段的字段
- 在其他元素的基础上隐藏/取消隐藏jsp元素
- 如何从其他 jsp 调用方法/函数以包含在另一个 jsp 的 jstree 中
- 如何在jsp中插入单选按钮、复选框和其他输入类型
- 如果用户在jsp中填写一个字段(同时使用springmvc和hibernate),我如何自动填写其他表单字段
- 如何将给定的文本链接到其他JSP页面
- JSP会话丢失后,javascript窗口替换位置与其他JSP页面
- Liferay portlet:从javascript重定向到其他jsp页面
- 如何显示文本以及JQuery进度条,并在完成后转发到其他JSP页面
- 要更改默认文本"No File Selected"在JSP中添加一些其他文本的浏览器按钮
- 重定向其他Jsp JavaScript
- 如何使用jsp变量传输onclick并直接到其他页面
- 使用javascript向位于JSP中其他域的Servlet发送请求参数