2013-04-10 26 views
5

Próbuję się nauczyć furtki. Jednym z problemów, które napotykam, jest zmiana wartości komponentów takich jak etykieta.Etykieta zmiany winie/wartość pola tekstowego

ten sposób Oświadczam etykiecie:

Label message = new Label("message", new Model<String>("")); 
message .setOutputMarkupId(true); 
add(message); 

Jedynym rozwiązaniem mogę znaleźć:

Label newMessage= new Label(message.getId(), "MESSAGE"); 
newMessage.setOutputMarkupId(true); 
message.replaceWith(newMessage); 
target.add(newMessage); 

Czy istnieje lepszy/łatwiejszy sposób, aby zmienić wartość etykiety Wicket i wyświetlaczem ta nowa wartość dla użytkownika?

Dzięki!

Odpowiedz

19

Myślę, że nie rozumiesz, jakie modele są. Twój przykład może być przepisana następująco

Model<String> strMdl = Model.of("My old message"); 
Label msg = new Label("label", strMdl); 
msg.setOutputMarkupId(true); 
add(msg); 

W swojej ajax zdarzenia

strMdl.setObject("My new message"); 
target.add(msg); 
+0

dziękuję za odpowiedź. Nie zrozumiałem ich, ale teraz mam. To działa idealnie – Attiej