Как включить привязку страницы ZK к закрытым свойствам bean-компонента - PullRequest
1 голос
/ 13 января 2012

Как включить привязку страницы 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 как public.

Фреймворки, такие как hibernate, также могут работать с не публичными свойствами, так почемуzk выбрано не слишком, возможно изменение конфигурации, чтобы включить это ??

Любые предложения будут хороши.

Спасибо Sudarshan

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Определение модели домена:

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() {}
}

Краткое описание: все остальные модули следует программировать наКнижный интерфейс.Вы все еще можете использовать отражение для реализации модели.Для изготовления гривы используйте фабрику.

0 голосов
/ 14 марта 2012

Создайте его подкласс, сделав эти методы доступа общедоступными и используйте подкласс вместо класса Book.

...