Как установить значение после привязки данных, но до проверки в Spring MVC 3? - PullRequest
1 голос
/ 11 августа 2011

Мне нужно установить поле «время отправки» для одного из моих доменных объектов. Правила проверки требуют, чтобы это свойство было там, но я не могу установить его с помощью привязки данных из формы, потому что тогда пользователь может изменить его. Как я могу установить свойство связанного объекта (или объекта, который должен быть связан), прежде чем произойдет проверка?

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Не знаю, правильно ли я понял ваш вопрос, но у вас есть 2 варианта манипулирования вашими данными: на стороне клиента с помощью Java Script, на стороне сервера - с помощью клиентского Validator.

public class PersonValidator implements Validator {

    /**
    * This Validator validates just Person instances
    */
    public boolean supports(Class clazz) {
        return Person.class.equals(clazz);
    }

    public void validate(Object obj, Errors e) {
        Person p = (Person) obj;
        p.setanyValue(some value); //changing object value
        if (p.getAge() < 0) {
            e.rejectValue("age", "negativevalue");
        } else if (p.getAge() > 110) {
            e.rejectValue("age", "too.darn.old");
        }
    }
}

Надеюсь, что это такпомогает.

0 голосов
/ 12 августа 2011

Возможно, материал

Я считаю, что привязка начинается с создания нового экземпляра класса.Предполагая, что это правда, вы можете добавить blah = new Date(); в конструктор.Хотя это должно произойти до привязки, я считаю, что оно отвечает основному требованию получить время отправки, но не позволяйте клиенту его редактировать.

Если это не так, проверьтеИнтерфейс InitializingBean (или соответствующий атрибут компонента init-method).

Похоже, что у Spring 3.0 есть еще больше вариантов жизненного цикла.проверить раздел 3.6.1.4 Объединение механизмов жизненного цикла в справочнике Spring 3.0 .

Лучшая информация

Вы должны иметь возможность зарегистрировать перехватчик обработчикаи установите в нем время отправки.

Проверьте 15.4.1 Перехват запросов - раздел интерфейса HandlerInterceptor в справочнике Spring 3.0 (ссылка выше).

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