Доступ и изменение атрибутов / объектов, которые не являются частью компонента поддержки формы - PullRequest
0 голосов
/ 21 марта 2010

Я использую Spring MVC (через Spring Roo) для создания небольшого веб-приложения для администрирования пользователей.На странице для создания лица бин Person используется в качестве объекта поддержки формы (ключ "персона" на карте модели).

<form:form action="${form_url}" method="POST" modelAttribute="person">

Я хотел бы добавить некоторые атрибуты на карту модели, которыеможет быть изменен пользователем в форме создания.По сути, я пытаюсь добавить логическое значение, чтобы я мог контролировать, какая страница будет отображаться после нажатия пользователем кнопки отправки.

Я пытаюсь изменить логическое значение (ключ "myBoolean" на карте модели), используяпростой флажок:

<form:checkbox id="_myboolean_id" path="myBoolean"/>

Однако, поскольку я новичок в Spring MVC, у меня здесь есть некоторые трудности.Логический объект не является атрибутом объекта поддержки формы.Поэтому, если я пытаюсь получить к нему доступ, выдается следующее исключение (конечно):

Недопустимое свойство 'myBoolean' класса бина [de.cm.model.Person]: Свойство бина 'myBoolean' равноне читается или имеет недопустимый метод получения: соответствует ли возвращаемый тип получателя параметру установщика?

Есть ли способ прямого доступа к значению карты модели?Единственное решение, которое я могу представить прямо сейчас, - это своего рода объект-обертка вокруг класса Person и мои дополнительные атрибуты, которые используются в качестве нового объекта поддержки формы.Тем не менее, это больше работы для простой задачи IMHO.У вас есть лучшее решение?

1 Ответ

2 голосов
/ 21 марта 2010

Вы можете создать настраиваемое поле формы:

<input type="checkbox" name="myBoolean"/>

и указать дополнительный параметр в методе публикации контроллера:

public ModelAndView savePerson(@ModelAttribute("person") Person person, @RequestParameter ("myBoolean") Boolean myBoolean)
...