2012-12-13 32 views
1

任何人都可以幫助我如何發送Portletrequest從JavaScript作爲AJAX調用vaadin?vaadin與ajax

我在vaadin門戶彈出窗口顯示從JavaScript所選擇的值

我使用AJAX調用來獲取所選值的要求。

但是Ajax發送HTTP請求,所以我的portlet上下文消失了。

任何一個可以幫助我如何的PortletRequest

我的Ajax調用從JavaScript:

$.ajax(
     { 
      type : "POST", 
      url : "serveResource", 
      data : {"tBPMNObject": JSON.stringify(chart.series.name)}, 
      dataType : "json" 
     } 
     ).done(function(responseData) 
       { 
        console.log("Success#"); 
        console.log(responseData); 
       } 
     ).fail(function(responseData) 
       { 
        console.log("failed-->"); 
        console.log(responseData); 
       }); 

,並實施HttpServletRequestListener

public void onRequestStart(HttpServletRequest request, 
     HttpServletResponse response) { 

     String name = request.getParameter("tBPMNObject"); 

} 
@Override 
public void onRequestEnd(HttpServletRequest request, 
     HttpServletResponse response) { 


} 

回答

1

在vaadin的要求,我們可以將請求發送給handelRenderRequest通過在ajax中傳遞友好的url

$.ajax(
      { 
       type : "POST", 
       url :"Friendly URL of the portlet", 
       data : {"CHART_VALUE": JSON.stringify(chart.series.name)}, 
       dataType : "json" 
      } 
    ).done(function(responseData) 
      { 
     console.log("Success#"); 
     console.log(responseData); 
     vaadin.forceSync(); 
      } 
    ).fail(function(responseData) 
      { 
     console.log("failed-->"); 
     console.log(responseData); 
     vaadin.forceSync(); 
      }); 

我們可以通過使用 request.getParameter(「CHART_VALUE」);來獲取renderrequest中的值。

 private class LiferayPortletListener implements PortletListener 
    { 
     public void handleRenderRequest(RenderRequest request, RenderResponse response, Window window) 
     { 
      system.out.println(request.getParameter("CHART_VALUE")); 
      }}