Quel est le besoin de JSF, quand L'UI peut être réalisé avec les bibliothèques JavaScript telles que jQuery et AngularJS

je lisais au sujet de JSF que son cadre D'assurance-chômage et fournit certaines composantes D'assurance-chômage. Mais comment est-il meilleur ou différent du nombre de composants qui sont disponibles à partir de jQueryUI, AngularJS, ExtJS, ou même HTML simple, CSS et JavaScript.

pourquoi quelqu'un devrait apprendre le JSF?

108
demandé sur BalusC 2010-12-12 16:19:33
la source

8 ответов

JSF to plain JSP/Servlet/HTML/CSS / JS est comme jQuery to plain JS: do more with less code. Pour prendre comme exemple PrimeFaces (basé sur jQuery + jQuery UI), parcourez son showcase pour voir des exemples de code complets. BootsFaces (basé sur jQuery + Bootstrap UI) a aussi un showcase avec des exemples de code complets. Si vous étudiez ces exemples de près, alors vous verrez que vous avez fondamentalement besoin d'un Classe Javabean simple comme modèle et un fichier XHTML comme vue.

notez que vous ne devez pas voir JSF comme le remplacement de HTML/CSS/JS seul, vous devez également prendre en compte la partie côté serveur (en particulier: JSP/Servlet). JSF supprime le besoin de tous les boilerplate de rassembler les paramètres de requête HTTP, de les convertir/les valider, de mettre à jour les valeurs du modèle, d'exécuter la bonne méthode Java pour faire les affaires et de générer le code HTML/CSS/JS boilerplate. Avec JSF vous en gros, on finit avec une page XHTML comme définition de vue et une classe Javabean comme définition de modèle. Cela accélère grandement le développement.

comme pour tout MVC framework web basé sur des composants, vous avez en JSF un contrôle moins fin sur le rendu HTML/CSS/JS. Ajouter du code JS personnalisé n'est pas aussi simple que cela, car vous devez également prendre en compte l'état de la vue JSF du côté du serveur (par exemple, activer un bouton désactivé du côté JS n'activera pas le bouton du côté JSF, qui est à son tour un énorme avantage de sécurité). S'il s'agit toutefois d'un showstopper majeur, alors plutôt chercher un cadre MVC web basé sur l'action comme MVC printemps . Vous ne prendrez en compte que le fait que vous devez écrire tout ce code HTML/CSS/JS vous-même . De plus, si vous passez de Facelets à JSP, vous raterez les fonctionnalités avancées de templage.

d'un autre côté, si vous avez un grand site JSP/Servlet/HTML/CSS/JS/jQuery et que vous avez comme pour remanier le code répété JSP/Servlet/HTML/CSS/JS / jQuery boilerplate en composants réutilisables, alors l'une des solutions serait JSF. Des modèles personnalisés, des tagfiles et des composants peuvent aider à cela. Dans cette perspective, JSF se situe au-dessus de JSP/Servlet/HTML/CSS/JS/jQuery (et c'est aussi pourquoi il est très important de comprendre ces bases avant de plonger dans JSF).

vous pouvez trouver un vrai monde kickoff JSF basé projet ici: Java EE Kickoff App . Vous verrez qu'il contient à côté de JSF comme bon HTML5 , CSS3 et jQuery .

voir aussi:

138
répondu BalusC 2018-01-05 17:15:21
la source

JSF a été créé pour faire en sorte que les boutiques java n'ont pas à apprendre des choses comme jQuery et construire js complexe, mais plutôt se concentrer sur une pile purement Java. Dans un monde où le temps, c'est de l'argent et beaucoup d'endroits se concentrent déjà sur le développement de Java, un langage/pièce en moins dans la pile rend la formation et le maintien plus rapide et donc moins cher.

J'ajouterai que JavaScript est facile à devenir un cauchemar de maintenance sur les grandes équipes, surtout si certains des développeurs sur le les projets ne sont pas très familiers avec le web.

26
répondu Andrew White 2018-02-08 16:44:13
la source

avec Javascript et les cadres tels que jQuery vous avez la flexibilité complète et le contrôle complet . Avec les ext etc vous perdez beaucoup de contrôle et devez vous adapter au cadre. Avec JSF, vous perdez totalement le contrôle et vous devez vous adapter totalement au cadre. Vous êtes invoqué dans les cycles de vie, etc. et finalement vous n'avez aucun contrôle quand l'appel au serveur peut être fait et où pas. Si vous devez faire quelque chose de considéré comme "spécial", vous êtes dans une position très difficile. Et dans le monde de JSF même des choses aussi fondamentales que le tri de table multicolumn ou les champs où vous pouvez taper seulement un ensemble limité de caractères (tel que le champ de nombre) sont considérés comme 'Spéciaux'.

cependant, plus vous avez de flexibilité, plus vous pouvez faire d'erreurs ou de mauvaises pratiques. Une grande flexibilité ne fonctionne qu'avec des programmeurs très intelligents, d'autres transformeront le projet en cauchemar ingérable.

mais, avec JSF et sa flexibilité limitée, il n'y a toujours que quelques (ou même une) façon correcte de faire quelque chose. Vous êtes très limité, vous ne pouvez pas faire de raccourcis, vous devez écrire plus de XML, etc. - mais lors de l'adaptation à la norme, il ya un meilleur contrôle sur le code que les programmeurs non expérimentés ou peu qualifiés vont produire. En conséquence, les grandes entreprises aiment le JSF parce qu'il est "plus sûr" pour elles.

quand je suis passé de GWT à JSF, j'ai été choqué, combien de choses, qui étaient naturelles pour moi, étaient considérées comme hautement atypiques et combien de choses simples étaient si difficiles à réaliser. Quoi de plus, même en faisant les plus petits changements, tels que l'ajout de ':' signe après étiquette, qui dans GWT/jQuery powered app serait changer une fonction générant étiquette, nécessaire de changer des douzaines de fichiers avec des propriétés localisées, qui n'a été considéré par personne sauf moi étrange...

23
répondu Danubian Sailor 2018-02-08 16:46:21
la source

Je ne suis pas du tout d'accord que jsf ajoute quoi que ce soit. Ça ajoute seulement des frais généraux. Faire des trucs d'interface utilisateur sur le serveur est la chose la plus ridicule que j'ai jamais entendu. Et javascript sur les grandes équipes fonctionne très bien-son code appelé réutiliser.

enveloppez juste le jquery dans quelques étiquettes jsp, c'est tout ce dont vous avez besoin et vous avez fait, et ne supportez pas le.des entraves et des problèmes d'extensibilité.jsf et richfaces.

9
répondu guwst 2012-04-29 19:36:22
la source

les avantages d'utiliser JSF ne sont pas seulement en générant xhtml + css + js. Parfois JSF impose une restriction sur le markup que vous pouvez générer, comme n'importe quel framework basé sur un composant. Mais JSF n'est pas seulement pour cela, son style de vie aide grandement. Après la validation de l'entrée, il peut mettre à jour le modèle et synchroniser les périphériques de votre serveur sans aucun effort. vous dites simplement "quel que soit le type d'utilisateur ici, Vérifiez s'il s'agit d'un numéro, si oui, stockez-le dans la propriété YY dans l'objet XX" et JSF fera tout cela.

donc oui, vous pouvez toujours utiliser JQuery, JS, etc. Mais JSF offre de nombreux avantages quand il s'agit d'écrire du code côté serveur et vous sauve de beaucoup de plaque chauffante.

8
répondu arg20 2012-04-11 16:47:20
la source

ayant travaillé avec JSF, Spring MVC, Struts, Grails, JQuery, et ExtJS mon opinion est que Grails + ExtJS est une combinaison puissante.

je choisirais des grils au lieu de JSF n'importe quel jour. J'aime l'exhaustivité D'ExtJS comme le cadre côté client et la bibliothèque, mais il est livré avec une courbe d'apprentissage plus raide que JQuery.

6
répondu dbrin 2012-10-16 02:22:23
la source

Voici les plus grandes différences entre jQuery et JSF:

  • pas de l'architecture MVC
  • aucun contrôle d'état (date stockée dans la session ou la conversation, auto-nettoyage, etc.)
  • aucun (valeur par défaut) la validation de la bibliothèque
  • pas de template library
  • aucune avancée navigation/routage
  • côté client

jQuery n'a jamais été destiné à être utilisé comme un cadre Web de la pile complète. Il était plus destiné à remplacer le code JS de bas niveau de sorte que l'écriture JS devient plus facile et plus puissante en moins de lignes de code.

et il devrait donc être principalement utilisé pour ajouter un comportement sur les éléments HTML.

3
répondu Serkan 2017-07-04 16:55:42
la source

ayant utilisé ExtJS framework pour une grande application web, Je sais combien il est facile à utiliser. L'ExtJS (Schena) est le mieux adapté pour les interactions de base de données (Oracle 11g) dans l'architecture MVC. La Vue était que pour le visuel / les interactions de l'utilisateur. Le contrôleur a spécifié le "traitement" et les déclencheurs qui devaient être utilisés dans les paquets PLSQL (L'API pour les requêtes CRUD, SQL select, etc.).). Le Modèle et les fichiers de stockage ont été utilisés pour "cartographier" les éléments de données vers le visualiseur / les entrées.

ExtJS n'est pas adapté pour les interfaces web intensives sans base de données - où JS angulaire peut être un meilleur ajustement.

2
répondu Lukas Knaf 2016-12-31 02:08:01
la source

Autres questions sur jsf user-interface javascript-framework