Переопределите функцию hashCode (), чтобы гарантировать, что при изменении значений формы будет возвращено другое значение. Сохраните возвращаемое значение функции и проверьте, изменилось ли оно.
public class Person {
String first;
String last;
int prevHash;
@Override
public int hashCode() {
// does not include the value of currHash
String stringHash = String.format("%1$-29s%2$-29s", first,last);
return stringHash.hashCode();
}
}
public class PersonValidator implements Validator {
public void validate(Object obj, Errors e) {
Person p = (Person) obj;
if (p.hashCode() == p.getPrevHash()) {
e.reject("person", "unchanged");
}
}
...
}
Я не думаю, что существует проверочный тест, предоставленный Spring, чтобы проверить, изменился ли объект поддержки формы
Обратите внимание, что вы можете выполнить дополнительные тесты на стороне клиента, прежде чем разрешить пользователю отправить форму.