1

任何人都可以帮助我如何将 Portletrequest 作为 AJAX 调用从 javascript 发送到 vaadin?

我需要在 vaadin portlet 弹出窗口中显示从 javaScript 中选择的值

我正在使用 AJAX 调用来获取选定的值。

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

任何人都可以帮助我如何portletrequest

我来自 JavaScript 的 Ajax 调用:

   $.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 在 vaadin 中的请求

public void onRequestStart(HttpServletRequest request,
        HttpServletResponse response) {

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

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


}
4

1 回答 1

1

我们可以通过在ajax中传递友好的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"); 获取 renderrequest 中的值。

     private class LiferayPortletListener implements PortletListener
    {
        public void handleRenderRequest(RenderRequest request, RenderResponse response, Window window)
        {
             system.out.println(request.getParameter("CHART_VALUE"));
             }}
于 2012-12-14T17:23:19.117 回答