Я пытаюсь создать простое приложение на основе калитки. Я хочу разместить панель на своей странице, которая указывает, вошел ли пользователь в систему. К сожалению, мне не удалось найти рабочий пример моей проблемы: я хочу, чтобы мой ярлык отображал имя пользователя, если кто-то вошел в систему, и какое-то сообщение, если ни один пользователь не вошел в систему. Наверное, я что-то упускаю.Использование динамических Wicket-ресурсов правильным способом
вот код:
панели:
public class Header extends Panel {
IModel<StringResourceModel> userNameModel = new LoadableDetachableModel<StringResourceModel>() {
@Override
protected StringResourceModel load() {
final User user = MySession.get().getAuthenticatedUser();
if (user==null){
return new StringResourceModel("username.noUser", Header.this , null);
}else{
return new StringResourceModel("username.user", Header.this, Model.of(user));
}
}
};
public Header(final String id) {
super(id);
}
@Override
protected void onInitialize() {
super.onInitialize();
add(new Label("username", userNameModel));
}
}
Свойства:
username.noUser=You are not logged in
username.user=Welcome, ${name}
Markup:
<wicket:panel>
<wicket:label class="username" wicket:id="username" />
</wicket:panel>
Визуализированное текст
StringResourceModel [Ключ: username.noUser, по умолчанию: NULL, Титулы: []]
Поведение имеет смысл. Но как я могу исправить это, чтобы текст был рендерен?