Struts не может обновить значение для отключенного поля

У меня проблема со Struts. Поток такой:

  • Я отправляю поле с некоторым значением, но проверка не проходит по какой-то причине. Это нормально.
  • После этого я что-то меняю на странице, и это поле отключается.
  • В следующий раз, когда я отправлю, я хочу, чтобы значение поля было обновлено до null, потому что оно отключено. Проблема в том, что поле по-прежнему содержит значение из первой отправки.

Есть идеи, как это решить? Я использую Struts 1.


person erik.c    schedule 11.04.2014    source источник


Ответы (1)


Вероятно, у вас есть компонент формы с областью действия сеанса, который сохраняет значения между запросами. Когда вы отправляете новые данные, компонент формы получает обновленные значения из полей внутри запроса (данные связываются с параметрами запроса).

Но есть проблема с отключенными полями и чекбоксами. Отключенные поля, как и снятые флажки, не отправляются в запрос при отправке формы. Когда приходит запрос, поле отсутствует в запросе (поскольку оно отключено), и Struts не выполняет для него привязку, поэтому сохраняет любое значение, которое у него было ранее.

Есть два способа исправить это:

  • используйте bean-компонент формы с областью запроса. Это не сохраняется между запросами, а воссоздается заново при каждой отправке. Это может быть невозможно, если у вас есть поток типа мастера, и вам нужно сохранять данные в сеансе между запросами.
  • используйте ActionForm.reset(), чтобы сбросить значение отключенного поля до нуля. Если он отсутствует в запросе при отправке, он остается нулевым, если он присутствует, он затем обновляется, когда Struts выполняет привязку данных.
person Bogdan    schedule 04.05.2014