我有一个检票口页面,说SignUpCustomerPage extends WebPage
。它的默认模型为new CompoundPropertyModel<Customer>(customer)
,其中customer
是页面类的私有属性。
我将各种HTML输入字段添加到页面形式中,但在添加HTML5网址输入时,它需要IModel<String>
作为第二个参数。实施例
model = new CompoundPropertyModel<Customer>(customer);
Form f = new Form();
f.add(new UrlTextField("website", model));
add(f);
如何将复合属性模型与URL文本字段组合在一起的任何示例?
答案 0 :(得分:0)
我认为不可能使用CompoundPropertyModel
。您可以改为使用PropertyModel
:
f.add(new UrlTextField("website", new PropertyModel<String>(customer, "website"));
答案 1 :(得分:0)
您可以使用复合属性模型使用复合属性模型来访问对象内部的属性,如下所示:“textfieldid.property”因此,在以下示例中,您可以使用“customer.website”获取/设置Customer对象内的网站。这个id也应该在html中用于表单输入wicket:id。
// Customer class
public class Customer {
private String website;
// Getter and setter for website
}
// Webpage
public SignUpCustomerPage extends WebPage {
private Customer customer;
public SignUpCustomerPage() {
customer = new Customer();
CompoundPropertyModel<Customer> cpm = new CompoundPropertyModel<Customer>(customer);
Form<Customer> form = new Form("formid", cpm) {
@Override
public onSubmit(){ System.out.println(getModelObject().getWebsite())}
};
form.add(new UrlTextField("customer.website"));
add(form);
}
}