liferay portlet二次開發多個ajax資料傳遞
最近需要使用liferay,在進行portlet開發時需要使用到多個ajax資料的傳遞,現將程式碼粘帖如下:
也歡迎大家加入一起討論群:427070805
portlet view.jsp程式碼如下:
<portlet:resourceURL var="ajaxUrl" >
<portlet:param name="p_p_resource_id" value="test1"/>
</portlet:resourceURL>
<script >
$(function(){
$.ajax({
type:'POST',
url:'<%=ajaxUrl%>',
data:{p_p_resource_id:'test1'},
complete :function(){$("#load").hide();}, //AJAX請求完成時隱藏loading提示
success: function(msg){
alert(msg);
}
});
$('#test2').click(function(){
$.ajax({
type:'POST',
url:'<%=ajaxUrl%>',
data:{p_p_resource_id:'test2'},
complete :function(){$("#load").hide();}, //AJAX請求完成時隱藏loading提示
success: function(msg){
alert(msg);
}
});
});
});
</script>
<input type="button" id="test2" value="test2">
後臺接收方法如下:
public class villageTitlePortlet extends MVCPortlet {
//通過ajax提交到後臺之後需重寫些方法進行處理
@Override
public void serveResource(ResourceRequest resourceRequest,
ResourceResponse resourceResponse) throws IOException,
PortletException {
String resourceID=resourceRequest.getResourceID();
System.out.println("sssssssssss"+resourceID);
resourceResponse.setContentType("text/html;charset=UTF-8");
PrintWriter out=null;
out=resourceResponse.getWriter();
String result="這是test2服務端返回的結果資訊";
if(resourceID.equals("test1")){
result="這是test1服務端返回的結果資訊";
out.print(jsonString);
out.flush();
out.close();
}
out.print(result);
out.flush();
out.close();
super.serveResource(resourceRequest, resourceResponse);
}
}
注意:頁面上ajax url對應的標籤是portlet:resourceURL,而非actionURL。