2013-06-20 33 views
5

Tôi đang có portlet liferay và tôi cần phải phụ thuộc nhiều vào các cuộc gọi AJAX. Vì vậy, tôi cần phải thực hiện nhiều cuộc gọi để phục vụ phương phápResource. Một cách để làm tương tự là tôi có thể chuyển một tham số với URL và sau đó phân biệt yêu cầu theo tham số đó.Nhiều cuộc gọi Ajax các portlet trọn đời

Nhưng trong trường hợp của tôi, tôi phải gọi serveResource rất nhiều lần do đó phương pháp sẽ khó duy trì. Có khung làm việc nào không? Sử dụng mã nào sẽ được duy trì.

khuôn khổ
+3

bạn có thể sử dụng Spring MVC. –

Trả lời

2

Sử dụng Spring MVC và gọi phương thức khác nhau dựa trên logic kinh doanh/user hành động của bạn trong bộ điều khiển,

Hãy thử mã dưới đây trong jsp

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

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

trong bộ điều khiển/lớp 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 
    } 

hy vọng đoạn mã trên sẽ giúp bạn và bạn có được những gì bạn đang tìm kiếm !!!

+0

Cảm ơn câu trả lời. Chúng tôi đang đi với điều này chỉ .. Mặc dù quyết định đi với mùa xuân MVC đã được thực hiện nhưng sau đó cũng cảm ơn một tấn cho đầu vào của bạn. :-) – Danish

2

Thêm nhiều trong this.We không thể sử dụng phương pháp serveResource như processAction .There thể có nhiều processAction trong portlet liferay duy nhất (mà không phải là Spring Portlet MVC), trong khi trong trường hợp serveReource nó sẽ là duy nhất.

serveResource chủ yếu được sử dụng cho cuộc gọi ajax.Chúng tôi có thể xử lý nhiều yêu cầu ajax theo phương thức serveResource bằng cách phân biệt cuộc gọi bằng Id tài nguyên.

resourceRequest.getResourceID() sẽ trả lại Id mà chúng tôi đã xác định trong jsp bằng cách sử dụng mã bên dưới.

<portlet:resourceURL var="demoUrl" id="demoUrl"></portlet:resourceURL> 
Các vấn đề liên quan