如何启用ZK页面与bean的非公共属性绑定。
假设我有一个名为Book的域对象,它看起来像
class Book{
private String name;
protected String getName(){
return name;
}
protected void setName(String name){
this.name = name;
}
}
我希望能够使用@ {book.name}绑定一个文本框,目前我认为需要使用getter和setter作为公共绑定。
像hibernate这样的框架也可以在非公共属性上运行,那么为什么zk也没有选择,可以通过配置更改来启用它?
任何建议都会很棒。
由于 苏达
答案 0 :(得分:0)
将这些访问器公开为子类并使用子类而不是类Book。
答案 1 :(得分:0)
域模型定义:
public interface Book {
// some public methods you want to expose
}
域模型实施:
// This class is of package visibility
class BookSomewhatSpecificImplementation implements Book {
private String name;
// Note that they are package-scoped.
String getName(){
return name;
}
void setName(String name){
this.name = name;
}
}
对象工厂:
public final class DomainModelFactory {
public static Book createBook(/* Some parameters */) {
return new BookSomewhatSpecificImplementation();
}
private DomainModelFactory() {}
}
总结:您应该针对Book界面编写所有其他模块。您仍然可以使用反射来实现模型。要生产鬃毛物体,请使用工厂。