有没有办法在Spring webflow中使用不可变对象作为视图状态中的模型?我知道Spring webflow通常倾向于设置这类东西,但我想知道是否有人知道可以使用构造函数处理数据绑定的自定义DataBinder或WebDataBinder?
我也知道有这个(SPR-1488) JIRA任务来解决这个问题,该问题主张直接进行现场访问。人们是否主张这种做事方式?对我而言,感觉不太对劲。
谢谢,
斯图尔特
答案 0 :(得分:2)
我举了一个例子,说明如何使用Jackson的ObjectMapper(除了JSON之外,它可以很好地将任何内容映射到不可变对象)。
https://gist.github.com/4458079
要注意的一点是,如果要使用Spring的验证(@ModelAttribute
),除非替换所有参数解析器,否则不能使用BindingResult
。但是@Valid
(带有验证)应该有效,@RequestBody
也适用于我的解决方案(无需验证)。
虽然它使用Jackson将请求参数映射到对象,但不涉及JSON处理。如果你想看到MappingJacksonHttpMessageConverter。
作为一个虚弱的无耻插件,我需要将它与我的Immutable ORM called: JIRM结合使用,因为我更喜欢消息驱动架构的不可变对象。