我一直在這裏和Vaadin論壇上搜索幾個小時,但我似乎在這裏有一個獨特的問題。Vaadin BeanFieldGroup - 「Property is not cascaded」當綁定嵌套屬性
我簡化了我的問題,可以很容易地說明問題。 所以我有一個Bean類:
public class Bean {
private String name;
private NestedBean nestedBean;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public NestedBean getNestedBean() {
return nestedBean;
}
public void setNestedBean(NestedBean nestedBean) {
this.nestedBean = nestedBean;
}
Bean() {
this.name = "Bean";
this.nestedBean = new NestedBean();
}
}
而且其嵌套場,類NestedBean:
public class NestedBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
NestedBean() {
this.name = "NestedBean";
}
}
所以現在我想的Bean的實例綁定兩個的TextField,用BeanFieldGroup的幫助:
Bean bean = new Bean();
BeanFieldGroup<Bean> binder = new BeanFieldGroup<>(Bean.class);
binder.setItemDataSource(bean);
addComponent(binder.buildAndBind("Name", "name"));
addComponent(binder.buildAndBind("Nested name", "nestedBean.name"));
然而,這將引發此異常:
java.lang.IllegalArgumentException: Property com.reygok.vaadin.main.Bean.nestedBean is not cascaded
Caused by: org.apache.bval.jsr.UnknownPropertyException: Property com.reygok.vaadin.main.Bean.nestedBean is not cascaded
我嘗試了不同的解決方案,如:
首先創建的TextField,然後使用
binder.bind(textField, "nestedBean.name");
這樣做第一:
binder.getItemDataSource().addNestedProperty("nestedBean.name");
但沒有什麼變化異常。那麼有人知道是什麼原因造成的?
非常感謝!
我試過了,但是它並沒有改變任何東西。爲什麼這會有所作爲? – Reygok3