2013-06-20 17 views
5

Mam portlet liferay i muszę w dużym stopniu polegać na wywołaniach AJAX. Potrzebuję więc wielu wywołań do metody serveResource. Jednym ze sposobów na to samo jest to, że mogę przekazać parametr z adresem URL, a następnie rozróżnić żądanie zgodnie z tym parametrem.Kilka portletów lifestyowych Ajax nazywa się

Ale w moim przypadku muszę wywoływać serveResource tak wiele razy, dzięki czemu metoda będzie trudna do utrzymania. Czy są na to jakieś ramy? Używanie kodu staje się możliwe do utrzymania.

+3

można przejść ze Spring MVC. –

Odpowiedz

2

Zastosowanie Wiosna MVC ramy i wywołać inny sposób na podstawie logiki biznesowej/działania użytkownika w sterowniku,

Spróbuj poniżej kod w JSP

połączenia
<portlet:resourceURL var="loadContents" id="loadContents"></portlet:resourceURL> 
<portlet:resourceURL var="loadCategories" id="loadCategories"></portlet:resourceURL> 

ajax 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(); 
       }); 
     }); 

w kontrolerze/klasie języka 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 
    } 

nadzieję, że powyżej fragmentów kodu pomoże ci i dostaniesz to, czego szukałeś !!!

+0

Dzięki za odpowiedź. Idziemy z tym tylko .. Chociaż decyzja o wyjeździe ze sprężyną MVC została już podjęta, ale także dzięki tonom za twoje wkłady. :-) – Danish

2

Dodanie więcej w this.We nie można użyć metody takie jak processActionserveResource .There może być wielokrotnością processAction w pojedynczym Liferay portletu (co nie jest MVC wiosny portlet), natomiast w przypadku serveReource będzie to singiel.

serveResource jest używany głównie do wywołania ajax. Możemy obsługiwać wiele żądań ajax w metodzie serveResource, rozróżniając połączenie za pomocą identyfikatora zasobu.

resourceRequest.getResourceID() zwróci identyfikator, który zdefiniowaliśmy w jsp, używając poniższego kodu.

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