自分のコードリファクタリング
その②のつづき
CompoundPropertyModelを使ったバージョン
public HomePage() { add(new FeedbackPanel("feedback")); ValueKeeper value = new ValueKeeper(); Form<ValueKeeper> form = new Form<ValueKeeper>("form",new CompoundPropertyModel<ValueKeeper>(value)); add(form); TextField<String> inputID = new TextField<String>("id"); inputID.setRequired(true); form.add(inputID); PasswordTextField inputPass = new PasswordTextField("password"); inputPass.setRequired(true); form.add(inputPass); TextField<String> inputText = new TextField<String>("text"); inputText.setRequired(true); form.add(inputText); NextButton button = new NextButton("submit", value); form.add(button); }
CompoundPropertyModelを使うと
各コンポーネントで
TextField
としなくても
FormでCompoundPropertyModelを使いますよーと定義すれば
TextField
だけでおkです
ただここでコンポーネントIDはプロパティ式と同じにしないといけないといけません
CompoundPropertyModelはコンポーネントIDをプロパティ式とみなすからです
試しに違う名前にしてみたらテストが通りませんでした