Différence entre le MVC Request et le MVC Component [fermé]
j'ai entendu dire que JSF est en train de mettre en œuvre le MVC basé sur les composants et le MVC du printemps est en train de mettre en œuvre le MVC basé sur la demande. Je voudrais savoir quelle est précisément la différence technique entre ces deux types.
1 réponses
dans MVC basé sur la requête (action), un seul servlet de contrôleur front déléguera aux modèles d'action basés sur L'URL/params de la requête. Vous travaillez directement avec les objets raw HttpServletRequest
et HttpServletResponse
dans le modèle d'action. Vous devez écrire du code vous-même pour rassembler, convertir et valider les paramètres de la requête et si nécessaire mettre à jour les valeurs du modèle avant de pouvoir jamais invoquer l'action de l'entreprise.
dans MVC basé sur les composants, un contrôleur front unique se rassemblera, convertira et de valider les paramètres de la requête et de mettre à jour les valeurs du modèle lui-même de sorte que vous n'avez besoin de vous soucier de l'action de l'entreprise vous-même. Comment le contrôleur doit recueillir l'/convertir/valider/mettre à jour les valeurs est défini dans un seul endroit, la vue. Puisque ce N'est pas possible avec du HTML "simple", un langage de balisage spécifique est nécessaire pour atteindre l'objectif. Dans le cas de JSF 2.0, C'est XML (XHTML) basé. Vous utilisez XML pour définir les composants D'UI qui contiennent à leur tour des informations sur la façon dont le contrôleur devrait rassembler/convertir/valider/mettre à jour les valeurs du modèle et générer / afficher la représentation HTML nécessaire.
avantages et inconvénients doivent être clairs à ce point: avec un MVC framework basé sur une requête, vous devez écrire plus de code (boilerplate) vous-même pour atteindre l'objectif. Cependant, vous vous retrouvez avec un contrôle beaucoup plus fin sur le processus et la sortie HTML/CSS/JS. Avec un framework MVC basé sur un composant, vous n'avez pas besoin d'écrire beaucoup de code vous-même. Cependant, vous avez contrôle moins fin du processus et de la sortie HTML/CSS/JS. Donc, si vous souhaitez faire des choses un bit différemment que la norme décrit et/ou la mise en œuvre fournit, alors vous perdrez beaucoup plus de temps dans un MVC framework basé sur un composant lorsque vous n'êtes pas bien familiarisé avec ses ins et outs.
Manfred Riem (JSF 2.membre de l'équipe x et ex Java EE 8 MVC 1.0 spec lead) l'a bien décrit lors de son discours sur à propos de MVC 1.0 (JSR 371) on Devoxx 14 :