A mesure que la complexité des projets Web sur lesquels je travaille augmente, la nécessité d'inclure une structure MVC devient plus urgente. Mes classes de modèles sont bien définies, mais le code de vue et de contrôleur a tendance à se confondre. J'ai utilisé AJAX assez lourd sur le site aussi (RichFaces jsFunctions surtout) ce qui rend les choses un peu plus compliquées.Meilleure pratique pour implémenter MVC dans les beans gérés JSF2
Est-ce que quelqu'un a trouvé de bonnes stratégies pour implémenter MVC en utilisant JSF2? Je ne veux pas introduire un autre cadre pour le projet (par exemple Spring MVC).
Quelques idées à ce jour, que je ne l'ai pas commencé à faire encore
- Pour une page avec de lourdes ajax, ont un haricot « vue » pour se souvenir des onglets sélectionnés, les éléments sélectionnés, fournissant des listes filtrées de données, etc ...
- Avoir un bean 'controller' pour gérer les actions telles que les changements au modèle
- Avoir des beans 'command' qui vont entre la page JSF et le contrôleur. Une fonction jsFunction remplit le bean de commande avec des paramètres et l'appel
command.execute()
fait que la commande bean appelle la méthode correcte sur le bean contrôleur pour effectuer l'action. Le bean 'command' peut inclure du javascript pour être appelé à la fin. Il peut également spécifier les régions de la page à rendre.
Des pensées?
Modifier
Ce que je vois assez souvent les haricots sont gérés qui ont tendance à tout faire: garder une trace des sélections des utilisateurs, mettre à jour le modèle, obtenir des listes filtrées, etc ...
Nous utilisons JSF 1.2 pour le moment et nous ne pouvons donc pas utiliser actions/actionlisteners avec des paramètres. Ainsi, par exemple, nos beans gérés contiennent des variables telles que m_selectedDate
dont le seul but est d'alimenter la date sélectionnée en back-end sur l'appel à updateFilteredItemsBasedOnDate()
. Ce serait bien si les variables supplémentaires pouvaient disparaître car elles sont temporaires. JSF 2 EL avec des paramètres devrait aider, mais je suis curieux de savoir s'il existe une solution de rechange disponible. Je suis curieux de savoir s'il existe un moyen d'appliquer MVC aux beans gérés, ou une méthode de séparation des soucis afin que nous ne nous retrouvions pas avec de gros haricots qui essaient de tout faire.
Je ne vois pas le point de "Comment puis-je MVC avec JSF?". JSF lui-même est déjà un framework MVC (2). Les haricots gérés sont le M, les pages des facelets sont les V, le 'FacesServlet 'intégré est le C. Votre question n'est-elle pas plutôt" Comment puis-je concevoir les beans gérés dans JSF? ". – BalusC
Bon point. J'ai mis à jour le titre de la question et ajouté quelques commentaires. –
D'autres pensées? –