Je lisais sur JSF que c’est une infrastructure d’interface utilisateur et fournit des composants d’interface utilisateur. Mais comment est-ce mieux ou différent du nombre de composants qui peuvent sont disponibles de jQuery, extjs ou combinaison de css et html et js. Pourquoi est-ce que quelqu'un devrait apprendre JSF.
Réponses
Trop de publicités?JSF à la plaine de JSP/Servlet/HTML/CSS/JS est comme jQuery à la plaine de JS: faire plus avec moins de code. Pour prendre PrimeFaces comme un exemple, de parcourir sa vitrine pour voir des exemples de code. RichFaces a aussi une vitrine complète avec des exemples de code. Si vous avez l'étude de ces exemples de près, alors vous verrez que vous avez essentiellement besoin d'une simple classe Javabean comme modèle et un fichier XHTML comme point de vue.
Notez que vous ne devriez pas voir de l'ACI en tant que remplacement de la seule HTML/CSS/JS, vous devez également prendre le côté serveur de la partie en compte (en particulier: JSP/Servlet). JSF supprime la nécessité de tous les passe-partout de collecte des paramètres de la requête HTTP, la conversion/validation, mise à jour du modèle de valeurs, de l'exécution de la bonne méthode en Java pour faire des trucs d'entreprise et de générer le HTML/CSS/JS de code réutilisable. Avec JSF en gros, vous avez jusqu'à la fin avec une page XHTML en tant que définition de la vue et une classe Javabean comme définition du modèle. Ceci accélère considérablement le développement.
Comme avec chaque composant web basé sur le framework MVC, vous avez dans le JSF moins un contrôle plus fin sur le rendu HTML/CSS/JS. L'ajout de code JS n'est pas si facile que vous avez à prendre dans le cadre du programme de l'état d'affichage dans le côté serveur en compte (par exemple, l'activation d'un bouton désactivé en JS côté de ne pas activer le bouton dans la JSF côté, qui est à son tour un énorme avantage de sécurité). Si c'est cependant l'un des principaux clou du spectacle, au lieu de regarder pour une action basée sur le web MVC framework comme Spring MVC. Vous n'aurez qu'à prendre en compte le fait que vous avez à écrire tout ce que HTML/CSS/JS code vous-même. Aussi, si vous tomber à l'arrière de Facelets pour JSP, vous allez manquer de templating avancé capacités.
D'autre part, si vous avez un gros JSP/Servlet/HTML/CSS/JS/jQuery site web et que vous souhaitez refactoriser le répétées JSP/Servlet/HTML/CSS/JS/jQuery code réutilisable dans de composants réutilisables, puis l'une des solutions serait d'ACI. Modèles personnalisés, tagfiles et des composants peut aider dans cette. Dans cette perspective, la JSF s'élève au-dessus JSP/Servlet/HTML/CSS/JS/jQuery (et c'est aussi pourquoi il est très important de comprendre les principes fondamentaux avant de plonger dans le JSF).
Voir aussi:
La JSF a été créé pour faire en sorte que les magasins n'ont pas besoin d'apprendre des trucs comme jQuery et buil complexe js, mais plutôt se concentrer sur un aspect purement Java pile. Dans un monde où le temps est de l'argent et beaucoup de lieux déjà en se concentrant sur le développement Java, un langage/pièce dans la pile fait de la formation et le maintien de plus rapide et donc moins cher.
Je vais ajouter que le JavaScript est facile de devenir un entretien cauchemar sur de grandes équipes, surtout si certains de développeurs sur le projet ne sont pas très web savy.
Avec du Javascript et des frameworks tels que jQuery, vous avez une totale flexibilité et un contrôle total . Wwith ext etc vous perdez beaucoup de contrôle et doit s'adapter au cadre. Avec JSF vous perd totalement le contrôle et doit totalement s'adapter au cadre. Vous êtes invoquée dans le cycle de vie etc. et enfin, vous n'avez aucun contrôle lors de l'appel pour le serveur peut être fait et où pas. Si vous êtes à faire quelque chose de considéré comme "spécial", vous êtes très dur de position. Et dans JSF monde, même ces choses de base comme plusieurs colonnes de la table de tri ou de domaines où vous pouvez taper seulement ensemble limité de caractères (tels que le nombre de champ) sont considérés comme "spécial".
Cependant, la plus grande flexibilité que vous avez, le plus d'erreurs ou de mauvaises pratiques peuvent être faites. Haute flexibilité fonctionne uniquement avec le très intelligent programmeurs, d'autres vont transformer le projet en unmanagable cauchemar.
Mais, avec JSF et sa marge de manœuvre limitée, il y a toujours un peu (ou même une seule façon correcte de faire quelque chose. Vous êtes très limité, vous ne pouvez pas faire des raccourcis, vous devez écrire plus XML etc. - mais lors de l'adaptation à la norme, il y a un meilleur contrôle sur le code de la inexpérimentés ou peu qualifiés programmeurs vont produire. En conséquence, les grandes sociétés de l'amour JSF, car il est "plus en sécurité".
Quand j'ai déménagé de GWT pour JSF, j'ai été choqué, comment beaucoup de choses, c'était naturel pour moi, a été considéré comme très atypique et combien les choses simples ont été si difficile à réaliser. Qui plus est, même les plus petits changements comme l'ajout d' ':' signer à la suite de l'étiquette, qui en GWT/jQuery alimenté application serait de changer une fonction génératrice de l'étiquette, de la nécessaire évolution des dizaines de fichiers avec des propriétés localisées, ce qui n'était même pas considéré comme par n'importe qui, sauf moi, étrange...
Les avantages de l'utilisation de JSF ne sont pas seulement en générant le xhtml + css + js. Parfois JSF impose une restriction sur le balisage, vous pouvez générer, comme n'importe quel composant. Mais JSF n'est pas seulement pour que, son lifecyle aide greately. Après validation de la saisie, il peut mettre à jour le modèle et la synchronisation de votre côté serveur haricots sans aucun effort. vous venez de dire "ce que l'utilisateur tape ici, vérifiez si c'est un nombre, si oui, alors le stocker dans la propriété YY dans l'objet XX" et JSF va faire tout ce qui.
Donc oui, vous pouvez toujours utiliser JQuery, JS, etc. Mais JSF fournit beaucoup d'avantages quand il s'agit de l'écriture de code côté serveur et vous permet d'économiser beaucoup de la chaudière de la plaque.
J’ai fortement en désaccord que jsf ajoute quoi que ce soit. Il ajoute seulement frais généraux. Faire des trucs de l’interface utilisateur sur le serveur est le plus ridicule ive chose jamais entendu parler. Et javascript sur grandes équipes fonctionne très bien - son appelé code de réutilisation.
Juste envelopper le jquery dans certaines balises jsp, c’est tout ce que vous besoin et vous êtes fait et ne supporter richfaces et with.jsf de questions the.shackles et l’évolutivité.