Пользовательская калитка из сообщения валидатора из базы данных

У меня есть собственный загрузчик пользовательских строк калитки (1.5.x), загружаемый при запуске приложения, который извлекает данные из таблицы словаря в моей базе данных.

Теперь, когда я использую этот загрузчик, несмотря на загрузку загрузчика строк по умолчанию, в моем тексте проверки он не показывает метку $ {component}, такую ​​как имя пользователя / пароль. Это похоже на "поле" необходимо ", где имя поля остается пустым. Как я мог это исправить?

Я пробовал одно решение. Вот мои коды:

1) У меня есть загрузчик моего String loader, например, в моем классе Application:

  getResourceSettings().getStringResourceLoaders().add(0,
            new ClassStringResourceLoader(MyApplication.class));

    getResourceSettings().getStringResourceLoaders()
       .add(1, new DictionaryLoader((IDicitureService)
        applicationContext.getBean(IDicitureService.class)));

здесь DictionaryLoader - это просто реализация IStringResourceLoader.

2) В форме входа в систему я добавил свое имя пользователя и пароль следующим образом:

    final FeedbackPanel feedback = new FeedbackPanel("feedback");
    feedback.setOutputMarkupId(true);
    form.add(feedback);
    form.add(new FormComponentFeedbackBorder("username_border")
            .add(new RequiredTextField("username",String.class)
                    .setLabel(new StringResourceModel("COMP:0:0", this, null))));
    form.add(new FormComponentFeedbackBorder("password_border").
            add(new PasswordTextField("password")
                    .setLabel(new StringResourceModel("COMP:1:0", this, null))));
    add(form);

wherenew StringResourceModel("COMP:1:0", this, null) просто возвращает строку типа имя пользователя ... пароль и т. д.

Теперь, если я проверяю свою страницу, она заменяет содержимое валидатора предоставленным мной текстом, когда я использую TextField.setLabel (), который на самом деле предназначен для метки валидатора. Но я здесь не использую $ {label}.

Это хороший способ сделать это? Или это можно сделать по-другому.

Благодарю.


person Shahriar    schedule 23.06.2011    source источник


Ответы (1)


Можете ли вы опубликовать значения для ключей сообщений «COMP: 0: 0» и «COMP: 1: 0»?

Вы должны использовать тот же синтаксис, что и калитка по умолчанию:

Required=Field '${label}' is required.

$ {label} - это либо фактическая метка (если вы ее установили), либо идентификатор поля (если вы не установили метку).

person lgawron    schedule 05.09.2011