3

我在表单操作类中有一些代码,需要flowExecutionKeyRequestContext. 我似乎找不到任何有关如何执行此操作的文档。我的班级看起来像这样:

public class MyFormAction extends FormAction
{
    public Event doStuff(RequestContext context)
    {
        String flowExecutionKey = ...??
        ...
    }
}

我知道我真的不需要获取 flowExecutionKey,但我正在处理一些需要它的遗留代码。此方法被称为视图状态的入口操作。我试过context.getFlowExecutionContext().getKey()但它返回null。context.getFlowExecutionUrl()也返回 null。有没有办法做到这一点?

更新

我又在玩这个,并且context.getFlowExecutionContext().getKey()在调用方法时确实得到了 flowExecutionKey<on-render>而不是<on-entry>. 还值得注意的是,它在<on-entry>稍后的视图状态下工作。它不工作的视图状态是我流程中的第一个视图状态。是否有某种原因我无法<on-entry>在第一个视图状态下获得 flowExecutionKey?

4

1 回答 1

4

回调在对服务器的<on-entry>初始 POST 期间执行。这将有一个类似的 URL http://server/myflow。完成后,webflow 将发出重定向到http://server/myflow?execution=e1s1. 在此调用期间<on-render>执行。

因此,您最初没有获得密钥的原因是<on-render尚未分配密钥。而你在 later <on-render>s 中看到的键实际上是前一个视图的键。

也看一下RequestContext.getFlowExecutionUrl()- 它会告诉你当前请求的 URL。这应该会有所启发。

于 2012-08-12T00:01:32.823 回答