Spring Webflow DataBinding通过构造函数绑定到不可变对象?

时间:2011-08-15 14:51:25

标签: spring immutability spring-webflow

有没有办法在Spring webflow中使用不可变对象作为视图状态中的模型?我知道Spring webflow通常倾向于设置这类东西,但我想知道是否有人知道可以使用构造函数处理数据绑定的自定义DataBinder或WebDataBinder?

我也知道有这个(SPR-1488) JIRA任务来解决这个问题,该问题主张直接进行现场访问。人们是否主张这种做事方式?对我而言,感觉不太对劲。

谢谢,

斯图尔特

1 个答案:

答案 0 :(得分:2)

我举了一个例子,说明如何使用Jackson的ObjectMapper(除了JSON之外,它可以很好地将任何内容映射到不可变对象)。

https://gist.github.com/4458079

要注意的一点是,如果要使用Spring的验证(@ModelAttribute),除非替换所有参数解析器,否则不能使用BindingResult。但是@Valid(带有验证)应该有效,@RequestBody也适用于我的解决方案(无需验证)。

虽然它使用Jackson将请求参数映射到对象,但不涉及JSON处理。如果你想看到MappingJacksonHttpMessageConverter

作为一个虚弱的无耻插件,我需要将它与我的Immutable ORM called: JIRM结合使用,因为我更喜欢消息驱动架构的不可变对象。