フォームに、特定の属性の別のタイプを持つ Model が添付された CompoundPropertyModel がある場合、Wicket の方法で、選択した DropDownChoices 値を変換することは可能ですか?
私の説明はあまり正確ではないと思うので、簡単な例:
public enum MyChoices {
ONE(1),TWO(2),THREE(3);
// ... etc
}
public class MyEntityModel {
private int number;
private String text;
}
// the WebPages constructor:
public ChoicePage() {
IModel<MyEntityModel> model = new CompoundPropertyModel<>(new EntityModel());
Form<MyEntityModel> form = new Form<MyEntityModel>("form", model);
add(form);
form.add(new TextField<String>("text"));
form.add(new DropDownChoice<>("choices", Model.of(MyChoices.ONE),
Arrays.asList(MyChoices.values()))
}
ONE を選択してフォームを送信するとき、モデル オブジェクトに値を持たせたい1
。
私は、MyEntityModel フィールド以外の DropDownChoice コンポーネントに名前を付けて、送信後にその値をモデルにコピーできることを知っています。しかし、それはウィケッツ モデルのアプローチではありませんね。
Ps: 私は Wicket 6.17.0 を使用しています。