Весенняя проверка бобов JSR 303 - PullRequest
3 голосов
/ 29 марта 2011

вот мой formbean: -

public class LoginFormBean {

    @NotEmpty
    private String userId;

    @NotEmpty
    private String password;    

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String pass) {
        this.password = pass;
    }
}

и в моем файле message.properties я пишу: -

NotEmpty={0} must not empty.

Он показывает мне сообщение об ошибке как: userId must not empty. и password must not empty.

Но я хочу показать сообщение об ошибке как User Id must not empty. или 'Password must not empty.'

Я знаю, что могу использовать @NotEmpty(message="User Id must not empty") в моем formBean, но я хочу синхронизировать сообщение, как будто нам нужноизменить сообщение, это будет меньше накладных расходов.
Я искал документы JSR, но не нашел ничего, что могло бы заменить имя моего атрибута userId на User Id на лету.Пожалуйста, ребята, помогите мне, застрявшим в нем от двух дней.
Если это невозможно, то скажите мне, а если нет, то помогите мне в чем-то альтернативном.

Спасибо
Шамс

Ответы [ 3 ]

4 голосов
/ 16 июня 2011

Возможно, вы уже исправили это, но чтобы настроить сообщения об ошибках в форматах JSR 303, вам нужно добавить записи в файл свойств в следующем формате:

<Constraint-Name>.<formbean-name>.<attribute-name>=My Message Text

В вашем случае это будет:

NotEmpty.loginFormBean.userId=User Id must not empty

NotEmpty.loginFormBean.password=Password must not empty

где loginFormBean - это имя вашей формы, а не имя класса.

0 голосов
/ 24 января 2012

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

Вот пример журнала для справки

Field error in object 'member' on field 'name': rejected value []; codes [NotEmpty.member.name,NotEmpty.name,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [member.name,name]; arguments []; default message [name]]; default message [may not be empty]

В журнале выше вы можете найти codes [NotEmpty.member.name,NotEmpty.name,NotEmpty.java.lang.String,NotEmpty]

Когда вы не настраиваете какие-либо коды ошибок или Spring не находит соответствующий код, тогда Spring вызывает DefaultMessageCodesResolver в действии для устранения сообщения об ошибке. Проверьте java doc , чтобы увидеть формат дополнительных кодов ошибок.

0 голосов
/ 30 марта 2011

в том же файле message.properties вы можете просто добавить следующее:

userId=User Id
password=Password

или вы можете использовать отдельный файл для имен полей и отдельный файл для проверки кодов сообщений. Это будет просто более читабельно.

Удачи:)

...