最近需要使用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。