如何将外部表单中的数据绑定到spring webflow?

时间:2011-11-29 16:18:23

标签: spring-webflow-2

我使用Spring webflow 2和webflow.mvc.servlet.FlowController。

我想将表单数据submittet(POST)绑定到流 直接到这个流程视图的模型。

在内部导航流程并提交表单数据时 数据正确绑定到模型,但何时 从外部网站提交数据数据不会自动绑定。

为了检查这一点,我在视图中使用了一个spring:form标签来通过名称/路径绑定submittet值。

Example: 
  - the views model is named "model"
  - the class used for the model object is has an attribute called "value1"
  -> the bind path for the form:input element is "model.value1"  
  -> the submitted form input field is named "model.value1" as well

更新

我现在可以使用以下方式手动访问请求参数:

<action-state>
  <evaluate expression="myBinder.execute(flowRequestContext)"/>
</action-state>

其中myBinder是实现org.springframework.webflow.execution.Action

的自定义Java类

和flowRequestContext是框架提供的EL变量。

通过requestContext.getExternalContext().getRequestParameterMap(); 请求的参数被公开。

现在将这些参数绑定到我的模型bean,有一种方便的方法 这是自动执行的,就像提到的“bindAndValidate”方法一样 这里和那里。 我不知道在哪个班级有这样的方法。

我希望有一些类来超类我的模型bean,但我无法在任何地方找到它。

更新

而不是实现Action接口,我现在已经将FormAction子类化了 有bindAndValidate()方法。但是,此方法需要请求作为参数,我还不知道如何最好地检索EL中对请求的引用。

此外,我还没有检查这是否会将请求参数实际绑定到我的模型并解决我的问题。

更新

我找到了一个示例,显示在没有给出参数的情况下调用bind方法 - 所以我假设框架找到了那些(requestContext)。

使用此方法,模型名称和类被设置为FormAction bean上的属性。

流似乎运行正常,但请求参数仍然未绑定...

也许我必须回到手动方法,从请求中读取每个参数并将其设置在模型对象上...

欢迎任何想法......

1 个答案:

答案 0 :(得分:1)

您可以使用EL访问XML流程定义中的请求参数。例如,如果要访问名为“param1”的请求中的参数,请使用 requestParameters.param1

希望这有帮助。