2013-04-10 9 views
5

Sto cercando di imparare Wicket. Uno dei problemi che ho riscontrato è la modifica dei valori dei componenti come un'etichetta.Etichetta di cambio del Wicket/valore textfield

Questo è come mi dichiaro l'etichetta:

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

L'unica soluzione che riesco a trovare:

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

Esiste un/modo migliore più facili da modificare il valore di un marchio Wicket e visualizzazione questo nuovo valore per l'utente?

Grazie!

risposta

19

Penso che tu non abbia capito cosa sono i Modelli. Il vostro esempio potrebbe essere riscritto come segue

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

Nel vostro evento ajax

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

Grazie per la risposta. Non li ho capiti, ma ora lo faccio. Funziona perfettamente – Attiej