CompoundPropertyModel
「ともくんコードのお話」 プログラミングお勉強きろく id:syoko_sasaki
http://d.hatena.ne.jp/syoko_sasaki/20090630/1246330391
>コンポーネントIDとプロパティ式は一緒にするのが一般的らしいです。
>一緒にするとなると同じ名前を2回書くことになるので、CompoundPropertyModelを使うとすっきりします
やってみたらすごくすっきりしました!
HomePage.java
import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.PasswordTextField; import org.apache.wicket.markup.html.form.TextArea; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.CompoundPropertyModel; /** * Homepage */ public class HomePage extends WebPage { private static final long serialVersionUID = 1L; /** * Constructor that is invoked when page is invoked without a session. * * @param parameters * Page parameters */ public HomePage(final PageParameters parameters) { PostingData data = new PostingData(); Form<PostingData> inputForm = new Form<PostingData>("inputForm", new CompoundPropertyModel<PostingData>(data)); TextField<String> inputId = new TextField<String>("userId"); PasswordTextField inputPw = new PasswordTextField("password"); TextArea<String> inputSb = new TextArea<String>("subject"); SubmitButton confirmButton = new SubmitButton("confirmButton", data); inputForm.add(inputId, inputPw, inputSb, confirmButton); this.add(inputForm); } }