Monday, May 11, 2015

Ajax using Alloy UI in Liferay Example 2

In this example will see how we can get liferay portal users using serverResource url with alloy UI Ajax.


Step 1 : Create one portlet plugin project , portlet name in this example ajaxExamples, inside this portlet plugin project create one portlet
name alloyajax

Step 2 : Paste below code in portlet view.jsp

 

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>

<portlet:defineObjects />

<portlet:resourceURL var="portalUsersDetailresourceURL"/>

<h1 style="color : red;">Liferay Ajax Alloy UI Example 2</h1><br/><br/>




  <aui:a href="#" id="getPortalUsers" name="getPortalUsers" label="Click Here To Get Portal User With Detail"></aui:a><br/>


  <table id="portalUsersTable" border="1"></table>


<aui:script>
AUI().use('aui-base','aui-io-request', function(A){
A.one("#<portlet:namespace/>getPortalUsers").on('click',function(){

   var UsersallRows="";
   //aui ajax call
    A.io.request('<%=portalUsersDetailresourceURL%>',
    {
    dataType: 'json',
    method: 'GET',
    //Below using data part we can pass any parameter also.In this example we are not passing any parameter
    // data: { param: 'ParamValue' },
    on: {
    success: function() {
    var data=this.get('responseData');
    A.Array.each(data, function(obj, idx){
        
    var UserstableRow='<tr><td>'+obj.screeName+'</td><td>'+obj.fullName+'</td><td>'+obj.email+'</td></tr>';
    
    UsersallRows = UsersallRows+UserstableRow;
        
    });
    A.one('#portalUsersTable').empty();
    A.one('#portalUsersTable').set('innerHTML',UsersallRows);
    }
    }
    });
});
});
</aui:script>



Step 3 : Paste below code in portlet controller class AlloyAjax.java

 
package com.test;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.portlet.PortletException;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;

import com.liferay.portal.kernel.json.JSONArray;
import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.json.JSONObject;
import com.liferay.portal.model.User;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;

/**
 * Portlet implementation class AlloyAjax
 */
public class AlloyAjax extends MVCPortlet {

    
     @Override
     public void serveResource(ResourceRequest resourceRequest,
     ResourceResponse resourceResponse)throws  IOException,
     PortletException {
         try {
            
             JSONObject jsonUserObject=null;
             JSONArray usersJsonArray=JSONFactoryUtil.createJSONArray();
            
             List<User> userList = UserLocalServiceUtil.getUsers(-1, -1);
            
             System.out.println("list :::"+userList);
            
             for(User userObj:userList){
                
             jsonUserObject = JSONFactoryUtil.createJSONObject();
            
             jsonUserObject.put("fullName",userObj.getFullName());
             jsonUserObject.put("email",userObj.getEmailAddress());
             jsonUserObject.put("screeName",userObj.getScreenName());
            
             usersJsonArray.put(jsonUserObject);
            
             }
            
             PrintWriter out=resourceResponse.getWriter();
             System.out.println(usersJsonArray.toString());
             out.print(usersJsonArray.toString());
             }
             catch (Exception e) {
             e.printStackTrace();
         }
     }   
}



Output :


0 comments:

Post a Comment