как использовать аннотации zk
-
26-09-2019 - |
Вопрос
Я использую зк 5.0.3.Я хочу использовать следующую привязку аннотации в качестве заголовка «центральной» области borderlayout:
<a:bind content="entrydisplay.activeEntryCaption" /> <html />
Я хочу сделать следующее:
<borderlayout>
<north title="use the above binding here">
this is north
</north>
</borderlayout>
Как мне добиться такой функциональности, чтобы я мог обернуть эту привязку как значение заголовка?
Спасибо, Sony
Решение
Для вашего конкретного вопроса аннотируйте свой компонент следующим образом:
<borderlayout>
<north id="mynorth" title="@{entrydisplay.activeEntryCaption}">
this is north
</north>
</borderlayout>
Связующее устройство данных прочитает такую аннотацию и вызовет методы получения и установки, чтобы установить для вас заголовок северного компонента.Он сделает что-то вроде:
mynorth.setTitle(entrydisplay.getActiveEntryCaption());
Другие советы
Вы используете устаревшую версию привязки данных ZK. Настоятельно рекомендуется использовать новейшую методологию.
Следующая ссылка представляет собой раздел DABINDINGING TAVING TISE TISE GUIDE & DEVELTERSER:
Наше основное привязность данных состоит из POJO, которая следует за конвенциями Geava Bean, которые являются доступ к интерфейсу на основе XML, используя аннотации в атрибутах. Например:
Человек поджо:
public class Person {
private String _firstName = "";
private String _lastName = "";
private Boolean _married = true;
public Person(){
}
public Person(String firstName, String lastName, Boolean married){
_firstName = firstName;
_lastName = lastName;
_married = married;
}
// getter and setters
public void setFullName(String f) {
// do nothing
}
public String getFullName() {
return _firstName + " " + _lastName;
}
//add more here
}
Файл пользовательского интерфейса:
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<window>
<zscript><![CDATA[
//prepare the person object
import bean.Person;
Person person = new Person();
person.setFirstName("Max");
person.setLastName("Planck");
]]>
</zscript>
<grid width="400px">
<rows>
<row> First Name: <textbox value="@{person.firstName}"/></row>
<row> Last Name: <textbox value="@{person.lastName}"/></row>
<row> Full Name: <label value="@{person.fullName}"/></row>
</rows>
</grid>
</window>
Теория описана здесь.
Я думаю, что старый путь делается так, как это
<borderlayout>
<north>
<attribute name="label">
<a:bind value="entrydisplay.activeEntryCaption" />
</attribute>
</north>
</borderlayout>
Новый Док Док [http://docs.zkoss.org/wiki/data_binding][data Привязка