2013-06-20 17 views
5

Ho un portlet liferay e ho bisogno di dipendere pesantemente dalle chiamate AJAX. Quindi ho bisogno di fare più chiamate per servire il metodo Resource. Un modo per fare lo stesso è che posso passare un parametro con l'URL e quindi differenziare la richiesta in base a quel parametro.Più Ajax chiama portlet liferay

Ma nel mio caso devo chiamare serveResource tante volte a causa del quale il metodo sarà difficile da mantenere. C'è qualche struttura per farlo? Usando il quale il codice diventa manutenibile.

quadro
+3

si può andare con Spring MVC. –

risposta

2

Usa Spring MVC e chiamare il metodo diverso in base alla logica di business/azione dell'utente controller,

Prova sottostante Codice in JSP

<portlet:resourceURL var="loadContents" id="loadContents"></portlet:resourceURL> 
<portlet:resourceURL var="loadCategories" id="loadCategories"></portlet:resourceURL> 

ajax chiamata nella jsp

AUI().ready(
     function(A) {    
      A.use('aui-io-request', 
        function(aui) { 
        A.io.request("<%=loadContents%>", { 
         autoLoad : false, 
         cache : false, 
         dataType : 'json', 
         data:{}, 
         method:'POST', 
         on : { 
          success : function(event, id, xhr) { 
           var response = this.get('responseData'); 
           // add logic here after response 
          } 
         } 
        }).start(); 
       }); 
     }); 

in controller/classe java

@ResourceMapping("loadCategories") 
    public void loadCategories(final ResourceRequest resourceRequest, final ResourceResponse resourceResponse) 
    { 
     // your business logic goes here 
    } 

    @ResourceMapping("loadContents") 
    public void loadContents(final ResourceRequest resourceRequest, final ResourceResponse resourceResponse) 
    { 
     // your business logic goes here 
    } 

la speranza sopra i frammenti di codice ti aiuterà e otterrai ciò che stavi cercando !!!

+0

Grazie per la risposta. Stiamo andando con questo solo .. Anche se la decisione di andare con la primavera MVC era già stata presa, ma poi anche grazie un sacco per i tuoi input. :-) – Danish

2

Aggiungendo più in this.We non può utilizzare il metodo serveResource come processAction .Ci può essere processAction multiplo in portlet Liferay singolo (che non è primavera portlet mvc), mentre in caso di serveReource sarà unico.

serveResource viene utilizzato principalmente per chiamate ajax. Siamo in grado di gestire più richieste Ajax nel metodo serveResource differenziando la chiamata utilizzando l'ID risorsa.

resourceRequest.getResourceID() restituirà l'ID, che abbiamo definito in jsp utilizzando il codice riportato di seguito.

<portlet:resourceURL var="demoUrl" id="demoUrl"></portlet:resourceURL>