2013-06-20 12 views
5

Ich habe liveray Portlet und ich muss stark von den AJAX-Anrufe abhängen. Also muss ich mehrere Aufrufe an die serveResource-Methode machen. Eine Möglichkeit, das Gleiche zu tun, ist, dass ich einen Parameter mit der URL übergeben und dann die Anfrage nach diesem Parameter differenzieren kann.Mehrere Ajax Anrufe liferay Portlets

Aber in meinem Fall muss ich serveResource so oft aufrufen, aufgrund der die Methode schwer zu pflegen sein wird. Gibt es dafür einen Rahmen? Damit wird der Code wartbar.

+3

können Sie mit Spring MVC gehen. –

Antwort

2

Verwenden Spring MVC-Framework und andere Methode aufrufen, auf der Grundlage Ihrer Business-Logik/Benutzeraktion in der Steuerung,

Versuchen unter Code in jsp

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

Ajax-Aufruf in 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/Java-Klasse

@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 
    } 

hoffe oben Code Schnipsel werden Ihnen helfen und Sie bekommen, was Sie gesucht haben !!!

+0

Danke für die Antwort. Wir gehen damit nur weiter .. Obwohl die Entscheidung, mit Feder MVC zu gehen, bereits getroffen wurde, dankt Ihnen aber auch eine Tonne für Ihre Eingaben. :-) – Danish

2

mehr in this.We Hinzufügen kann nicht die serveResource Methode wie processAction verwenden .Es können mehrere process in einzelnen liferay Portlet sein (was nicht mvc Portlet Frühling), während bei serveReource wird es einzelne sein.

serveResource wird hauptsächlich für Ajax Anruf verwendet. Wir können mehrere Ajax-Anfrage in serveResource Methode durch Differenzieren des Anrufs mit Ressource-ID.

resourceRequest.getResourceID() wird die Id zurückgeben, die wir in jsp unter Verwendung von Code definiert haben.

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