【问题标题】:Best way for two Spring WebFlow projects to share data两个 Spring WebFlow 项目共享数据的最佳方式
【发布时间】:2012-09-21 20:14:03
【问题描述】:

我正在尝试为两个 Spring WebFlow 项目寻找共享数据的最佳方式。在我的示例中,假设 Web-Flow App1 从用户那里获取信息,例如姓名、电话、ssn 等,我需要将控制权传递给一个 diff Web-Flow 应用程序,让我们称之为需要电话和 ssn 启动的 App2 .

由于某些规则,我们无法将手机和 ssn 保存到数据库中,因此我想听听其他程序员关于处理此问题的一些最佳方法。

【问题讨论】:

    标签: java spring spring-mvc spring-webflow


    【解决方案1】:

    如果两个 Web 流实际上驻留在同一个 Java Web 应用程序中,只需使用 app1 流中的子流状态来启动 app2 流并传递所需的输入:

    <subflow-state id="launchApp2" subflow="app2-flow">
        <input name="phone" />
        <input name="ssn" />
        <transition to="resumeApp1" />
    </subflow-state>
    

    参考文档中也对此进行了描述: http://static.springsource.org/spring-webflow/docs/2.3.x/reference/html/ch03s09.html

    【讨论】:

      【解决方案2】:

      一个网络应用程序必须将控制权传递给另一个网络应用程序?你可以重定向到 http://[app2]/start?phone=123&ssn=456

      【讨论】:

      • 问题是我们不想把它作为参数让用户可以看到它们
      • 它们是不同的网络应用程序吗?你还有很多选择:cookies、POST。许多(全部?)servlet 容器都支持在应用程序之间共享用户会话。
      【解决方案3】:

      将带有隐藏变量的表单发布到其他站点。

      <body onload="document.getElementById('theForm').submit();">
      <form id="theForm" action="http://app2/..." method="POST">
      <input type="hidden" name="name" value="Joe"></input>
      <input type="hidden" name="ssn" value="XYZ123..."></input>
      ...
      </form>
      </body>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-24
        • 2011-03-31
        • 1970-01-01
        相关资源
        最近更新 更多