在Liferay MVC portlet中刷新JSP页面的一部分

时间:2013-01-12 12:50:07

标签: jsp jquery liferay

我需要在页面上刷新一个table而不重新加载整页。有没有人知道这样做的好方法?

我创建了一个带有一个表的jspf页面,并通过Ajax请求<portlet:renderURL&gt;进行渲染,但该页面包含在默认的liferay主题中。是否有其他方法可以在没有主题的情况下获取页面日期?

<portlet:renderURL var="testURL">
    <portlet:param name="jspPage" value="/jspf/test.jspf" />
</portlet:renderURL>

<script>
$("#test-button").click(function() {
    $("#test-table").load("<%= testURL %>");
})
</script>

1 个答案:

答案 0 :(得分:2)

要在Liferay-MVC中使用Ajax,您应该创建一个resourceURL链接并在Portlet类的serveResource方法中处理它。

<portlet:resourceURL var="testURL">
    <portlet:param name="pageAddress" value="/jspf/test.jspf" />
</portlet:resourceURL>

<script>
$("#test-button").click(function() {
    $("#test-table").load("<%= testURL %>");
})
</script>

然后你应该在你的portlet类的serveResource方法中提供正确的结果。 此外,您可以使用resourceRequest对象

获取参数(pageAddress)
String pageAddress = resourceRequest.getParameter("pageAddress");