Имам собствен wicket(1.5.x) Custom String loader, зареден при стартиране на приложение, който извлича данни от речникова таблица в моята база данни.
Сега, когато използвам този зареждащ механизъм въпреки зареждането на зареждащия низ по подразбиране; в моя текст за проверка той не показва етикета ${component} като потребителско име/парола. Идва като "полето '' е задължително", където името на файла остава празно. Как мога да поправя това?
Опитах едно решение. Ето моите кодове:
1) Имам зареждане на моето зареждане на низове като това в моя клас 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} тук.
Това добър начин ли е да направите това? Или може да се направи по друг начин.
Благодаря.