Spring Webflow DataBinding для неизменных объектов через конструктор? - PullRequest
6 голосов
/ 15 августа 2011

Есть ли способ использования неизменяемого объекта в качестве модели в состоянии просмотра в веб-потоке Spring? Я знаю, что веб-поток Spring обычно стремится к сеттерам для такого рода вещей, но мне было интересно, кто-нибудь знал о пользовательских DataBinder или WebDataBinder, которые могли бы обрабатывать привязку данных с помощью конструктора?

Я также знаю, что есть эта (SPR-1488) Задача JIRA против проблемы, которая защищала прямой доступ на места. Люди защищают этот способ делать вещи? Для меня это не совсем правильно.

Спасибо

Stuart

1 Ответ

2 голосов
/ 05 января 2013

Я привел пример того, как вы можете сделать это, используя ObjectMapper Джексона (который помимо JSON хорошо отображает что-либо в неизменяемых объектах).

https://gist.github.com/4458079

Следует отметить, что вы не можете использовать @ModelAttribute, если хотите использовать проверку Spring (BindingResult), если не замените все средства разрешения аргументов. Однако @Valid (с проверкой) должно работать и @RequestBody также будет работать (без проверки) с моим решением.

Несмотря на то, что он использует Джексона для сопоставления параметров запроса с объектами, обработка JSON не выполняется. Если вы хотите это, посмотрите MappingJacksonHttpMessageConverter .

Как слабый бесстыдный штекер, мне это нужно было в сочетании с моим неизменяемым ORM под названием: JIRM , поскольку я предпочитаю неизменные объекты для управляемых сообщениями архитектур.

...