Можно ли использовать валидацию с параметрами, которые улучшены в контроллере? - PullRequest
1 голос
/ 20 ноября 2011

У меня есть модель веб-сайта, которая имеет свойство @Required User owner.Это свойство заполняется внутри метода контроллера.Однако проверка проверяется при входе в метод контроллера, поэтому он считает объект недействительным (потому что в то время он есть).

Следует играть!для этой цели будет использоваться проверка?

Нужно ли просто отбросить аннотацию @Valid и проверить вручную, используя validation.required(website)?

Обновление - при использовании validation.required(website) проверяется тольковеб-сайт не является пустым, но он не запускает проверку любых аннотаций на веб-сайте.Если я не использую аннотацию параметра @Valid, означает ли это, что я не могу использовать проверки на основе аннотаций для самой модели?Что делать программисту?

Update2 - похоже, мне следует звонить validation.valid(website) вместо validation.required(website).Я также добавил аннотацию @Required к параметру метода add() (вместо @Valid).Это так и надо?

@Entity
public class Website extends PortalModel {
    @Required
    public String url;

    @Required
    @ManyToOne
    public User owner;
}

public class Sites extends UserAwareControllerBase {
    public static void added(@Valid Website website) {
        website.owner = getUser(); // from base class

        if (Validation.hasErrors()) {
            Validation.keep();
            params.flash();
            add();
        }

        websiteRepo.save(website);
        edit(website.id);
    }
}

1 Ответ

1 голос
/ 20 ноября 2011

Я не уверен, есть ли смысл объявлять пользователя как @Required, если пользователи вашего приложения не влияют на него. Ну, это сеть безопасности для вашего собственного кода.

Но так как пользователь не указывает параметры при отправке формы веб-сайта, вам необходимо подтвердить вручную:

website.owner = getUser();
validation.valid(website);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...