【问题标题】:Spring Webflow DataBinding to immutable objects via a constructor?Spring Webflow DataBinding 通过构造函数绑定到不可变对象?
【发布时间】:2011-10-27 08:11:13
【问题描述】:

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

我也知道有这个(SPR-1488) JIRA 任务针对这个问题,它提倡直接字段访问。人们是否提倡这种做事方式?对我来说感觉不太对。

谢谢,

斯图尔特

【问题讨论】:

  • 我也在努力解决这个问题。
  • 查看我的解决方案。我也想要这个功能。

标签: spring immutability spring-webflow


【解决方案1】:

我已经举了一个例子来说明如何使用 Jackson 的 ObjectMapper 来做到这一点(除了 JSON 之外,它还可以很好地将任何东西映射到不可变对象)。

https://gist.github.com/4458079

需要注意的一点是,如果您想使用 Spring 的验证 (BindingResult),则不能使用 @ModelAttribute,除非您替换所有参数解析器。但是@Valid(经过验证)应该可以工作,@RequestBody 也可以与我的解决方案一起工作(未经验证)。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多