У меня есть собственный загрузчик пользовательских строк калитки (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}.
Это хороший способ сделать это? Или это можно сделать по-другому.
Благодарю.