У меня есть свой собственный загрузчик Wicket (1.5.x), загружаемый при запуске приложения, который извлекает данные из таблицы словаря в моей базе данных.
Теперь, когда я использую этот загрузчик, несмотря на загрузку загрузчика строк по умолчанию; в моем тексте проверки он не показывает метку $ {component}, такую как имя пользователя / пароль.Это происходит как «поле», обязательное для заполнения, когда имя поля остается пустым.Как я могу это исправить?
Я попробовал одно решение. Вот мои коды:
1) У меня есть загрузчик моего загрузчика строк, как это в моем классе приложения:
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);
где new StringResourceModel("COMP:1:0", this, null)
просто возвращает строку, такую как имя пользователя ... пароль и т. Д.
Теперь, если я проверяю свою страницу, она заменяет содержимое валидатора на предоставленный мной текст, когда я использую TextField.setLabel (), который фактически предназначен для метки валидатора,Но я здесь не использую $ {label}.
Это хороший способ сделать это?Или это можно сделать другим способом.
спасибо.