2013-04-10 10 views
5

私はウィケットを学ぼうとしています。私が遭遇する問題の1つは、ラベルのようなコンポーネントの値を変更することです。ウィケット変更ラベル/テキストフィールド値

これは私がラベルを宣言する方法です:

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); 

は、より良い/より簡単にWicketのラベルの値を編集する方法と表示がありますこの新しい価値はユーザーに?

ありがとうございます!

答えて

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