2009-05-15 7 views
4

Je suis nouveau sur JSP et Tiles, ainsi que Java. Nous remplaçons actuellement notre site en utilisant ces derniers, mais je suis confus quant à quand quelque chose devrait être mis dans un préparateur de vue contre venant du contrôleur. Par exemple, la page en cours sur laquelle je travaille comportera une mosaïque pour la pagination, y compris le type de contenu (type de contenu X de Y). Mon plan original était d'utiliser un préparateur de vue pour prendre les données envoyées par le contrôleur (HashMap) et de sortir quelques attributs pour la tuile de pagination, mais un collègue m'a dit que cela devrait être fait dans le contrôleur à la place.Quand utiliser View Preparer pour les mosaïques

Si tel est le cas, quel est le point de vue du préparateur de vues? Je suis juste un peu confus. J'ai vérifié les documents de Tiles et ils sont assez basique/inutilisable. Est-ce que quelqu'un peut me donner un bon cas d'utilisation pour un préparateur de vue?

Répondre

4

Le contrôleur est destiné à l'exécution de la logique métier ou transactionnelle. En d'autres termes, en réponse à une action de l'utilisateur, l'application doit effectuer une ou plusieurs actions, puis décider quelle vue afficher. C'est pourquoi il est appelé un contrôleur parce qu'il "contrôle" le flux d'une application. Lorsque le contrôleur effectue son travail, les modifications apportées aux données doivent devenir visibles pour l'utilisateur. Cependant, la préparation de ces données pour l'affichage n'est pas la tâche du contrôleur. Assurez-vous simplement que les actions nécessaires sont effectuées et que les données sont disponibles.

La vue, dans ce cas vos pages jsp, prendra alors les données et les affichera. Si je comprends bien, le Préparateur de vues vous aide à factoriser certains aspects de la vue, de sorte qu'une préparation qui peut devoir être faite dans plusieurs vues différentes peut être faite par le Préparateur. Donc, l'exemple dans les documents de préparation d'un menu est un bon cas d'utilisation. Les menus sont parfois dynamiques, en ce sens que cela dépend de l'état du système ce qui est exactement affiché pour l'utilisateur. Disons que vous voulez afficher un lien de connexion dans le menu lorsque l'utilisateur n'est pas connecté et supprimer ce lien dans le menu lorsque l'utilisateur est connecté. Plutôt que de coder cette logique dans chaque page qui doit afficher un menu vous peut utiliser un ViewPreparer qui génère le menu implémentant toute la logique nécessaire. Ce Viewer Preparer peut ensuite être associé à plusieurs pages. Pensez-y plutôt que manipuler les données pour les visualiser plutôt que la logique métier.

Questions connexes