0

我有嵌套模型,例如:

class User {
  private String name;
  private Address address;
  ...
}

class Address {
  private String city;
  ...
}

现在,在 Wicket 6 中,我可以使用单个 IModel 来访问所有嵌套属性,例如:

IModel<User> userModel = new PropertyModel<>(user);
Form<User> form = new CSRFSafeForm<>("form", user);
form.add(new TextField<>("name"));
form.add(new TextField<>("address.city"));

没有任何额外的编码是否可能?

我已经阅读了 Wicket 的手册https://cwiki.apache.org/confluence/display/WICKET/Working+with+Wicket+models但它说我需要创建一个新表单和 IModel。

是否可以在同一个表单上同时编辑姓名和城市?

4

1 回答 1

3

我不知道 CSRFSafeForm 是从哪里来的。

但是你可以用标准的 Form 和 CompoundPropertyModel 做同样的事情:

IModel<User> userModel = new PropertyModel<>(user);
Form<User> form = new Form<>("form", new CompoundPropertyModel<User>(user));
form.add(new TextField<>("name"));
form.add(new TextField<>("address.city"));
于 2015-04-29T18:39:13.597 回答