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

来源:互联网 发布:网络助手怎么用? 编辑:程序博客网 时间:2024/05/17 06:17

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 AJAXPortlet */public class AJAXPortlet 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 var="ajaxUrl" id="wq1"></portlet:resourceURL><portlet:resourceURL var="ayiUrl" id="wq2"></portlet:resourceURL><!-- 引入jQuery --><script type="text/javascript" src="<%=basePath%>/js/jquery.js"></script><script type="text/javascript">//利用jquery发送ajax请求$(function(){$("#ajaxtest1").click(function(){//发送请求$.ajax({  type: "post",  url: "<%=ajaxUrl%>",  success:function(data){  //写入数据  $("#message").val(data);  }});});});//利用AUI发送ajax请求AUI().use('aui-base','aui-io-request', function(A){A.one("#ajaxtest2").on('click',function(){A.io.request("<%=ayiUrl%>",{            //dataType: 'json',                method: "post",                //data: { paranName: '参数值' },                on:{                success: function() {                    var data = this.get('responseData');A.one("#message").val(data);                    }                }            });})});</script><html><p><input type="button" id="ajaxtest1" value="jquery发起请求" /><input type="button" id="ajaxtest2" value="aui发起请求" /></p><p>接收AJAX请求:<input type="text" id="message"/><p></html>

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

测试结果:


多个请求会进入Portlet中的唯一一个serveResource()方法中,该方法可以获取发送请求的p_p_resource_id,也就是标签portlet:resourceURL中的id属性,该案例就是通过多个该标签进行ajax请求,但是也可以值使用一个该标签,但是需要在不同的地方将p_p_resource_id传递给后端,后面文章会提到

原创粉丝点击