我使用Spring 2和一个webflow.mvc.servlet.FlowController。
我希望将表单数据提交体(POST)直接绑定到流到此flow视图的模型。
在内部导航流程和提交表单数据时,数据将正确绑定到模型,但在提交来自外部网站数据的数据时不会自动绑定。
为了检查这一点,我在视图中使用了spring:form标记来通过其名称/路径绑定提交的组值。
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上的一个属性。
流似乎运行正常,但请求参数仍未绑定.
也许我必须回到手动方法中,从请求中读取每个参数并将其设置在模型对象上.
任何想法都欢迎..。
发布于 2012-06-06 16:21:27
可以使用EL访问XML流定义中的请求参数。例如,如果您想在请求中访问一个名为“requestParameters.param1”的参数,请使用requestParameters.param1
希望这能有所帮助。
https://stackoverflow.com/questions/8314081
复制相似问题