Значение по умолчанию поля объекта формы - PullRequest
0 голосов
/ 03 сентября 2010

У меня есть форма, в которой в зависимости от выбранного состояния ([checkboxOn / checkboxOff]) должен отображаться флажок или нет. Когда флажок отображается, он должен быть установлен по умолчанию.

Как справиться с этой ситуацией, учитывая, что

  • когда выбрано в 'checkboxOff' состояние, я бы MyFormObject.isCheckboxOn == false;
  • когда выбор находится в состоянии 'checkboxOn', значение должно быть как в запросе?

Все это должно работать также при обратной передаче ошибок валидации, а также при отображении новой формы и в действительном случае формы.

Кроме того, я бы хотел избежать использования JavaScript на стороне клиента.

Вот код, который необходимо расширить:

class MyFormObject {
  private String selectValue;
  private boolean isCheckboxOn;
  ...
}

и два метода Spring-контроллера:

@RequestMapping(method = RequestMethod.GET)
public ModelAndView showForm() {
  return new ModelAndView('/form.jsp', 'command', new MyFormObject());
}

@RequestMapping(method = RequestMethod.POST)
public ModelAndView processSubmit(BindingResult result, MyFormObject command) {
  if (result.hasErrors()) {
    return new ModelAndView('/form', 'command', command);
  }
  ...
  return new ModelAndView('redirect:/success.jsp');
}

1 Ответ

0 голосов
/ 30 декабря 2010

Если вы хотите исключить поле флажка из вашего представления, когда для isCheckboxOn установлено значение false, вы можете окружить поле флажка с помощью ac: if в вашем JSP:

<c:if test="isCheckboxOn">
    (your checkbox <input> tag goes here)
</c:if>

Чтобы установить флажок по умолчанию, вы можете использовать библиотеку тегов формы Spring , чтобы связать непосредственно с полем флажка в модели, или вы можете использовать другой c:if, чтобы добавить checked к вашему тегу <input>.

...