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

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

我创建了一个带有一个表的jspf页面,并通过Ajax请求< portlet:renderURL>呈现它,但该页面包含在默认的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>

最佳答案 要在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");
点赞