2013-04-10 60 views
5

我正在學習檢票口。我遇到的其中一個問題是改變組件的價值,如標籤。檢票口更換標籤/文本框值

這是我的聲明標籤:

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

唯一的解決方案,我可以找到:

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

是否有編輯檢票標記和顯示的值更好/更簡單的方法這個新的價值給用戶?

謝謝!

回答

19

我覺得你不明白模型是什麼。您的例子可以如下

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

在你的Ajax事件

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

謝謝你的答案被改寫。我不明白他們,但現在我知道了。這是完美的 – Attiej 2013-04-10 10:36:17