まだウィケットモデルを取得していません。私はここで間違って何をしていますか? filterStringは、リンクonClickメソッドがそれを出力してもまだ ""です。ウィケット弦モデル
class X extends Panel {
String filterString;
TextField filterTextField;
AjaxLink filterLink;
X(){
filterString = new String("");
filterTextField = new TextField<String>("filterTextField", new PropertyModel<String>(this, "filterString"));
filterLink = new AjaxLink<Void>("filterLink"){
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
params.setFilterString(filterTextField.getModelObject());
System.out.println("BLABLABLA " + filterTextField.getModelObject());
}
};
//add stuff etc
}
}
EDIT:
OK、ユハは、フォームの作品を使用して言ったように。時には、私は、フォームを作成することが過度のように感じるように感じるが、これはおそらく最も重要なWicket-yのことなので、ここで使用するものである。クラスは、このようなものになります。コンストラクタで
public class X extends Panel {
private static final long serialVersionUID = 1L;
public X(String id) {
super(id);
add(new FilterForm("logEntryForm"));
}
public class FilterForm extends Form{
private static final long serialVersionUID = 1L;
private transient String text; //no need to serialize this
public FilterForm(String id) {
super(id);
final TextField<String> contents = new TextField<String>("contents", new PropertyModel<String>(FilterForm.this, "text")); //textArea for user to enter the filter String
add(contents);
add(new AjaxButton("filterButton") {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
//do stuff, in my case it was to send the text to the database for filtering out results
}
});
}
}
}
フォームを追加することはWicketとは関係ありませんが、Webの仕組みとは全く関係がありません。フォームがない限り、ブラウザはサーバーに値を送信しません。*または* Ajaxを使用してコンポーネントの値。それはウェブであり、それと共に生きています。 –