2010-09-30 20 views
0

J'utilise zk 5.0.3. Je veux utiliser l'annotation suivante liant comme le titre d'une région « centre » d'un BorderLayout:comment utiliser les annotations zk

<a:bind content="entrydisplay.activeEntryCaption" /> <html /> 

Je veux faire ce qui suit:

<borderlayout> 
<north title="use the above binding here"> 
    this is north 
</north> 
</borderlayout> 

Comment puis-je obtenir la fonctionnalité telle que Je peux envelopper cette liaison comme la valeur du titre?

Merci, Sony

Répondre

0

Pour votre question, annoter votre composant comme suit:

<borderlayout> 
<north id="mynorth" title="@{entrydisplay.activeEntryCaption}"> 
    this is north 
</north> 
</borderlayout> 

liant de données va lire cette annotation et appeler les méthodes getter et setter pour définir le titre de la composante nord pour vous. Il fera quelque chose comme:

mynorth.setTitle(entrydisplay.getActiveEntryCaption()); 
1

je pense que l'ancienne est fait comme ça

<borderlayout> 
<north> 
    <attribute name="label"> 
     <a:bind value="entrydisplay.activeEntryCaption" /> 
    </attribute> 
</north> 
</borderlayout> 

Le nouveau doc ​​ Le doc de [http://docs.zkoss.org/wiki/Data_binding ] [Liaison de données]

1

Vous utilisez une version obsolète de la liaison de données ZK. Il est fortement recommandé de faire usage de la dernière méthodologie.

Le lien suivant est la section de liaison de données du guide Essential ZK & de développeur Référence:

Notre databinding de base se compose d'un POJO qui suit les conventions de Java Bean étant l'accès à partir d'une interface basée sur XML en utilisant des annotations dans les attributs. Par exemple:

Personne 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 
} 

Le fichier de l'interface utilisateur:

<?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 théorie est décrite here.