2012-12-13 2 views
1

어느 누구도 나를 도와 줄 수 있습니까? AJAX 호출로 javascript에서 portletrequest를 vaadin으로 보내는 방법은 무엇입니까?vaadin with ajax

는 내가 선택한 가치를 얻을 수 AJAX 호출을 사용하고

angel이라는 포틀릿 팝업 창에서 자바 스크립트에서 선택된 값을 표시해야 할 필요가있다.

그러나 Ajax는 HTTP 요청을 보내어 내 포틀릿 컨텍스트가 사라집니다. 우리가 요청을 보낼 수 있습니다

$.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이의 요청 :

는 하나

내 아약스 자바 스크립트에서 호출을하고 PortletRequest하는 방법을 도와 줄 수 아약스의 친숙한 URL을 전달하여 handelRenderRequest

$.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");를 사용하여 렌더 요청에서 값을 가져올 수 있습니다.

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