2010-12-15 16 views

Répondre

3

Oui, cela fonctionne. La classe interne est rechargée en direct mais n'est pas instrumentée en tant que classe de composant.

J'ai commencé à utiliser cette technique pour définir les objets de données nécessaires à la page, puisque je peux mettre à jour les annotations @Validate, ou même modifier les propriétés disponibles, à la volée.

+0

M Lewis - le point "depuis que je peux mettre à jour les annotations @Validate, ou même modifier les propriétés disponibles, à la volée." n'est pas clair. pourriez-vous s'il vous plaît mettre un peu plus de lumière sur ce point si mon doute est authentique? –

+1

Annotations des utilisateurs de Tapestry sur un objet de données pour fournir automatiquement des validations côté client et côté serveur. Cependant, la plupart des objets de données ne sont pas rechargés en direct. En faisant de l'objet de données une classe interne d'une page, il est rechargé en direct. Maintenant, je peux ajouter ou modifier les annotations @Validate dans les champs et actualiser le navigateur pour voir les validations en vigueur. –

0

J'ai trouvé la solution et je la partage avec vous.

Supposons que nous ayons une page de tapisserie nommée Tpage.

public class Tpage { 
    // variables 
    @Property 
    private TpageInnerClass innerclass; 

    //some methods 

    // Inner class 
    public class TpageInnerClass { 
     // variable 
     //methods 
    } 
} 

Maintenant, vous pouvez accéder à la variable de classe interne dans Tpage.tml.

J'espère que c'est clair pour vous tous. Bien que je suis toujours à la recherche de commentaires d'experts.

+1

Donc, essentiellement, il n'y a pas de différence avec une classe normale .. et tout comme n'importe quelle propriété de page, vous devez créer un getter public, ou annoter comme @Property. rien à voir ici. – pstanton