我有liferay portlet,我需要在很大程度上依赖于AJAX调用。所以我需要多次调用serveResource方法。一种方法是我可以使用URL传递参数,然后根据该参数区分请求。
但在我的情况下,我必须多次调用serveResource,因为该方法难以维护。 有没有这样做的框架?使用哪些代码可以维护。
答案 0 :(得分:2)
使用Spring MVC框架并根据控制器中的业务逻辑/用户操作调用不同的方法,
尝试以下代码 在jsp中
<portlet:resourceURL var="loadContents" id="loadContents"></portlet:resourceURL>
<portlet:resourceURL var="loadCategories" id="loadCategories"></portlet:resourceURL>
jsp中的ajax调用
AUI().ready(
function(A) {
A.use('aui-io-request',
function(aui) {
A.io.request("<%=loadContents%>", {
autoLoad : false,
cache : false,
dataType : 'json',
data:{},
method:'POST',
on : {
success : function(event, id, xhr) {
var response = this.get('responseData');
// add logic here after response
}
}
}).start();
});
});
在controller / java类
中 @ResourceMapping("loadCategories")
public void loadCategories(final ResourceRequest resourceRequest, final ResourceResponse resourceResponse)
{
// your business logic goes here
}
@ResourceMapping("loadContents")
public void loadContents(final ResourceRequest resourceRequest, final ResourceResponse resourceResponse)
{
// your business logic goes here
}
希望上面的代码片段可以帮助你,你得到你想要的东西!!!
答案 1 :(得分:2)
在此添加更多。我们不能使用像serveResource
这样的processAction
方法。在单个liferay portlet中可以有多个processAction(不是spring mvc portlet),而在{{ 1}}它将是单一的。
serveReource
主要用于ajax调用。我们可以通过使用资源ID区分调用,在serveResource
方法中处理多个ajax请求。
serveResource
将返回我们在jsp中使用以下代码定义的Id。
resourceRequest.getResourceID()