利用一个portlet:resourceURL标签发送AJAX请求

来源:互联网 发布:网络割接方案 编辑:程序博客网 时间:2024/06/06 22:01

Portlet页面:

package com.demo.ajax;import java.io.IOException;import java.io.PrintWriter;import javax.portlet.PortletException;import javax.portlet.ResourceRequest;import javax.portlet.ResourceResponse;import com.liferay.util.bridges.mvc.MVCPortlet;/** * Portlet implementation class AJAXPortlet1 */public class AJAXPortlet1 extends MVCPortlet {//ajax请求时候只能使用portlet:resourceURL 进入serveResource方法中@Overridepublic void serveResource(ResourceRequest resourceRequest,ResourceResponse resourceResponse) throws IOException,PortletException {String resourceId = resourceRequest.getResourceID();PrintWriter writer = resourceResponse.getWriter();if("wq1".equals(resourceId)){writer.print("jquery请求!");}if("wq2".equals(resourceId)){writer.print("aui请求!");}writer.flush();}}

-----------------------------------------------------------------------------------------------

JSP页面:

<%@ page contentType="text/html; charset=UTF-8" %><%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %><portlet:defineObjects /><%String basePath = renderRequest.getContextPath();%><!-- ajax请求时候只能使用portlet:resourceURL 进入serveResource方法中--><!-- p_p_resource_id即为该id,可以在serveResource方法中取出 --><!-- 使用一个portlet:resourceURL标签,可以在地址后面绑定p_p_resource_id,或者通过参数传递该id --><portlet:resourceURL var="url"></portlet:resourceURL><!-- 引入jQuery --><script type="text/javascript" src="<%=basePath%>/js/jquery.js"></script><script type="text/javascript">//利用jquery发送ajax请求,在地址后面添加  &p_p_resource_id=wq1  来传递$(function(){$("#ajaxtest3").click(function(){//发送请求$.ajax({  type: "post",  url: "<%=url%>&p_p_resource_id=wq1",  success:function(data){  //写入数据  $("#msg").val(data);  }});});});//利用AUI发送ajax请求,利用参数传递p_p_resource_idAUI().use('aui-base','aui-io-request', function(A){A.one("#ajaxtest4").on('click',function(){A.io.request("<%=url%>",{            //dataType: 'json',                method: "post",                data: {                 paranName: "参数值",                p_p_resource_id:"wq2"                },                on:{                success: function() {                    var data = this.get('responseData');A.one("#msg").val(data);                    }                }            });})});</script><html><p><input type="button" id="ajaxtest3" value="jquery发起请求" /><input type="button" id="ajaxtest4" value="aui发起请求" /></p><p>接收AJAX请求:<input type="text" id="msg"/><p></html>

-----------------------------------------------------------------------------------------------

测试结果:


-----------------------------------------------------------------------------------------------

注意:在使用jquery选择器获取元素节点的时候,尽量ID不要相同,包括最后输出input的ID,若上篇文章中的ID与钙片文章ID相同,则会出现错误