【问题标题】:Inter Portlet Communication page submittionPortlet 间通信页面提交
【发布时间】:2012-09-19 17:19:34
【问题描述】:

我正在使用 java liferay 门户,其中有多个 portlet。我想创建一个带有表单的 portlet,当它被提交时,数据被检索并且特定的结果显示在其他一些页面 portlet 中。但不幸的是,这些事情并没有发生。

我正在考虑使用会话,但出现了 2 个问题。

  1. javascript 值分配给 java 变量。
  2. 如果将值传递到放置特定 Portlet 的页面,则该 Portlet 不会获取这些值。

然后我听说了 Inter Portlet Communication(IPC) 的概念,并从“liferay in action”中获得了一些帮助,但是如果两个 portlet 放在同一页面上,代码就可以工作,我的要求是一个 portlet 是放置在第一页上,当表单提交时,它被重定向到第二页,第二个 portlet 以获取参数。我尝试了更多示例,但它没有按照我的方式工作。

【问题讨论】:

    标签: java portlet liferay-6


    【解决方案1】:

    据我所知,IPC 确实只在同一页面上的 portlet 之间起作用。此外,portlet 规范没有提供用于切换页面的通用机制,因此您只能使用门户供应商特定的方法来实现这一点。但是使用公共渲染参数和正确构造的 Liferay URL 到另一个页面,您应该能够获得您想要的结果:http://www.liferay.com/web/guest/community/forums/-/message_boards/message/1207858

    【讨论】:

      【解决方案2】:

      我找到了另一种方法,一种相对简单的方法,刚刚从liferay尝试了那个wiki

      【讨论】:

        【解决方案3】:

        据我了解,您有一些 JavaScript 参数要传递到下一页。但是,您可以使用 PortletSession 的 APPLICATION_SCOPE 执行此操作,并且可以通过将值放入输入中来解决将 JS 参数转换为 Java 的问题。如果这些输入变量不应该由用户编写并且您从其他地方获取它们,则可以隐藏输入:

        在你的jsp中:

        <form>
         <input type="hidden" id="myinput1" name="in1" value="">
         <input type="hidden" id="myinput1" name="in2" value="">
        </form>
        
        <script>
        var a = "avalue";
        var b = "bvalue";
        document.getElementById("myinput1").value=a;
        document.getElementById("myinput2").value=b;
        </script>
        

        然后在需要时提交表单。接下来,您将能够在 portlet 的 ProcessAction 方法中这样做:

        String a= request.getParameter("in1");
        String b= request.getParameter("in2");
        
        PortletSession session = request.getPortletSession();
        session.setAttribute("a", a , PortletSession.APPLICATION_SCOPE);
        session.setAttribute("b", b , PortletSession.APPLICATION_SCOPE);
        

        在另一个portlet中,你可以通过调用找到它

        session.getAttribute("a",PortletSession.APPLICATION_SCOPE);
        

        当然,如果您不能简单地将它们放在下一页的 url 中。

        【讨论】:

          猜你喜欢
          • 2013-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-21
          • 1970-01-01
          • 1970-01-01
          • 2011-07-25
          • 1970-01-01
          相关资源
          最近更新 更多