Как я могу иметь предыдущее значение флажка в Spring? - PullRequest
1 голос
/ 30 июля 2009

Возможно ли иметь предыдущее значение флажка вместе с новым значением?

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

Ответы [ 3 ]

0 голосов
/ 10 августа 2009

Используете ли вы макросы Spring mvc JSP tablib или speed / freemarker?

Если это так, они должны выводить скрытое поле с существующим значением флажка в HTML с подчеркиванием "_" перед ним. Spring делает это, чтобы помочь определить, был ли флажок снят или просто не отправлен.

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

См. Метка флажка Spring MVC 2.5

0 голосов
/ 08 октября 2009

Чтобы сделать это правильно, вам нужно будет выполнить сравнение, не полагаясь на клиентскую сторону, чтобы записать старое значение, так как это может позволить вмешательство.

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

Для этого в методе formBackingObject (который вызывается снова после отправки POST), поместите копию значения в объект запроса. Затем в методе onSubmit вы можете получить значение из запроса на сравнение. Вы также можете записать это в другом поле команды.

Мне кажется, что Шпаргалка SimpleFormController очень полезна для определения порядка выполнения методов. Это должно помочь вам и здесь.

0 голосов
/ 30 июля 2009

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

Или, если у вас есть страница настроек, на которой установлен флажок, вы должны сохранить состояние страницы настроек и проверить, не изменились ли вы внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...