come utilizzare le annotazioni ZK
-
26-09-2019 - |
Domanda
Sto usando zk 5.0.3. Voglio usare vincolante come il titolo di una regione "centro" di un BorderLayout la seguente annotazione:
<a:bind content="entrydisplay.activeEntryCaption" /> <html />
Voglio fare quanto segue:
<borderlayout>
<north title="use the above binding here">
this is north
</north>
</borderlayout>
Come faccio a ottenere la funzionalità in modo che io possa avvolgere questo legame come il valore del titolo?
Grazie, Sony
Soluzione
Per la vostra domanda specifica, annotare il componente come segue:
<borderlayout>
<north id="mynorth" title="@{entrydisplay.activeEntryCaption}">
this is north
</north>
</borderlayout>
raccoglitori leggerà tale annotazione e chiamare i metodi getter e setter per impostare il titolo del componente nord per voi. Sarà fare qualcosa di simile:
mynorth.setTitle(entrydisplay.getActiveEntryCaption());
Altri suggerimenti
Si sta utilizzando una versione non aggiornata di dati di ZK vincolanti. Si consiglia vivamente di fare uso delle più recenti metodologie.
Il seguente link è la sezione l'associazione dati del ZK guida Essential & dell'autore Riferimento:
La nostra associazione dati di base è costituito da un POJO che segue le convenzioni di fagioli Java essendo l'accesso da un XML basato su un'interfaccia utilizzando le annotazioni negli attributi. Ad esempio:
Persona POJO:
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
}
Il file UI:
<?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>
La teoria è descritto qui .
Penso che il vecchio modo è fatto in questo modo
<borderlayout>
<north>
<attribute name="label">
<a:bind value="entrydisplay.activeEntryCaption" />
</attribute>
</north>
</borderlayout>
La nuova doc La Doc di [http://docs.zkoss.org/wiki/Data_binding][Data rilegatura]