Например, у меня есть класс Action под названием UsersAction, в котором есть такие методы, как вход в систему, выход из системы, регистрация и т. д.< /p>
И я написал метод validate() следующим образом:
Код: Выделить всё
@Override
public void validate() {
if ("".equals(username)) {
addFieldError("username", getText("username.required"));
}
if ("".equals(email)) {
addFieldError("email", getText("email.required"));
} else if (!Utils.isValidEmail(email)) {
addFieldError("email", getText("invalid.email.address"));
}
if ("".equals(phone)) {
addFieldError("phone", getText("phone.required"));
}
if ("".equals(password)) {
addFieldError("password", getText("password.required"));
}
}
Проблема в том, что это решение работает только при вызове действия регистрации, в любом случае оно не будет работать при входе в систему или выходе из системы, поскольку оно будет проверять, не являются ли поля пустыми или адрес электронной почты правильный, и всегда выдаст ошибку. Хорошо, решение для выхода заключалось в том, чтобы добавить над ним аннотацию @SkipValidation, но я не знаю, как сообщить ей, что для входа в систему есть только 2 поля: имя пользователя и пароль, и что это нет необходимости проверять электронную почту и телефон тоже. Я не хочу писать класс действий для каждого действия по отдельности, потому что цель Struts 2 не в этом.
Подробнее здесь:
https://stackoverflow.com/questions/173 ... fic-fields