Liferay 7.2 - 资源 URL 正在调用同一个实例
Liferay 7.2 - Resource URL is calling same instance
我在同一页面上有两个或更多相同的 portlet。并且 portlet 本身有一个 Resource URL 请求。
那么假设我在同一页面上有我的 portlet_pages_INSTANCE_1 和 portlet_pages_INSTANCE_2,并且 portlet 的相关代码是:
JSP:
<liferay-portlet:resourceURL var="loadDocuments" />
<i class="fa fa-angle-double-left" onclick="paginate()"></i>
<script>
function paginate() {
$.ajax({
type: 'POST',
url: '${ loadDocuments }',
data: {
'<portlet:namespace />someData': someData
},
success: function(data) {
// handle the success
}
});
}
</script>
如果页面中只有同一个 portlet 的一个实例,这会产生疑问。但是如果将多个相同的 portlet 添加到页面,它会出现奇怪的行为。
经过一些调试我尝试:
@Override
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException {
System.out.println(themeDisplay.getPortletDisplay().getInstanceId());
}
并注意到在不同 portlet 实例上单击分页按钮时,serveResource 仅打印我添加实例的最新 portlet。
有没有什么方法可以对特定的 portlet 实例进行 ajax 调用?
每个生成的 HTML 页面对 paginate
方法有多个定义。您需要为其命名空间,或参数化通用实现。
对于javascript,其中一个方法重载了前一个
我在同一页面上有两个或更多相同的 portlet。并且 portlet 本身有一个 Resource URL 请求。
那么假设我在同一页面上有我的 portlet_pages_INSTANCE_1 和 portlet_pages_INSTANCE_2,并且 portlet 的相关代码是:
JSP:
<liferay-portlet:resourceURL var="loadDocuments" />
<i class="fa fa-angle-double-left" onclick="paginate()"></i>
<script>
function paginate() {
$.ajax({
type: 'POST',
url: '${ loadDocuments }',
data: {
'<portlet:namespace />someData': someData
},
success: function(data) {
// handle the success
}
});
}
</script>
如果页面中只有同一个 portlet 的一个实例,这会产生疑问。但是如果将多个相同的 portlet 添加到页面,它会出现奇怪的行为。
经过一些调试我尝试:
@Override
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException {
System.out.println(themeDisplay.getPortletDisplay().getInstanceId());
}
并注意到在不同 portlet 实例上单击分页按钮时,serveResource 仅打印我添加实例的最新 portlet。
有没有什么方法可以对特定的 portlet 实例进行 ajax 调用?
每个生成的 HTML 页面对 paginate
方法有多个定义。您需要为其命名空间,或参数化通用实现。
对于javascript,其中一个方法重载了前一个