top 30 jsf interview questions
Ce didacticiel fournit des questions et réponses d'entretien fréquemment posées sur Java Server Faces ou JSF avec des explications pour vous aider à vous préparer à l'entretien:
Il est essentiel pour Java Developer d'avoir des connaissances pratiques dans un ou plusieurs frameworks Java couramment utilisés tels que Spring, Hibernate, Struts et Java Server Faces (JSF).
JSF est l'un des frameworks Java qui aident rapidement à concevoir des composants d'interface utilisateur Web.
JSP était une technologie Java qui utilisait l'API Java, des objets implicites et des balises personnalisées afin de développer des contenus Web dynamiques, tandis que Java Server Faces (JSF), une infrastructure d'application Web basée sur Java, développait des composants d'interface utilisateur Web.
JSF a géré des beans, des faces let, des annotations et des bibliothèques utilitaires telles que des faces principales et des faces Omni ou des faces de glace pour développer des composants basés sur des modèles côté serveur.
Ce que vous apprendrez:
Visages du serveur Java
La technologie Java Server Faces offre une API pour créer des composants d'interface utilisateur réutilisables dans les pages Web. Il connecte les composants avec la source de données d'application et les événements générés par le client aux gestionnaires d'événements côté serveur, maintient l'état de l'interface utilisateur sur plusieurs requêtes serveur et implémente des composants personnalisés.
JSF fournit une bibliothèque de base, des éléments d'entrée HTML standard en tant que composants d'interface utilisateur de base, basés sur divers appareils et types de clients, par exemple un navigateur HTML, WAP ou des appareils sans fil, fournit une capacité de rendu aux composants d'interface utilisateur.
Questions d'entrevue JSF fréquemment posées
Q # 1) Qu'est-ce que Java Server Faces (JSF)?
Répondre: Il s'agit d'un framework Java basé sur la conception MVC qui possède de riches bibliothèques d'API et de balises qui offrent la création de composants d'interface utilisateur côté serveur pour le développement Web.
JSF possède une bibliothèque de balises, une API, des facelets et des composants d'interface utilisateur et des beans gérés pour créer des applications Web.
Q # 2) Quelles fonctionnalités offrent Java Server Faces dans le développement Web?
Répondre: Les fonctionnalités sont répertoriées ci-dessous:
- Framework Java construit sur l'API Servlet
- Les composants de l'interface utilisateur sont stockés sur le serveur
- Modèle de programmation événementiel géré sur le serveur
- Prend en charge plusieurs appareils clients
- Facilité de mise en œuvre de composants tiers
- Architecture extensible
- Prise en charge étendue des outils de Borland, Exadel, Sun, Oracle, IBM, BEA, etc.
- Approche de développement rapide d'applications (RAD)
- Prend en charge l'internationalisation des étiquettes et du texte de l'interface utilisateur
Fonctionnalités de Java Server Faces:
Q # 3) Expliquez le cycle de vie JSF.
Répondre: Le cycle de vie comprend 6 phases, comme expliqué ci-dessous:
# 1) Restaurer la vue: Le cycle de vie commence par la phase de restauration de la vue. Lorsqu'un lien ou un bouton est cliqué sur la page Web, une demande est envoyée à JSF avec les opérations répertoriées ci-dessous:
- View est construit par JSF
- Connecte les gestionnaires d'événements et les validateurs aux composants de l'interface utilisateur
- Enregistre cette vue dans l'instance de FacesContext
- Fournit toutes les informations à FacesContext pour traiter la demande
# 2) Appliquer la demande: Ici, chaque composant de l'arborescence des composants est créé. Utilisez la méthode de décodage qui capture et enregistre les nouvelles valeurs des paramètres de demande. En cas d'échec lors de la conversion, il génère un message d'erreur et le répertorie sur FacesContext. Il affichera des messages de validation ou des erreurs pendant la phase de réponse du rendu. JSF passe à la phase de réponse de rendu lorsque les écouteurs d'événement de méthode de décodage appellent la méthode renderResponse.
# 3) Validation du processus: Au cours de cette phase, JSF traite les validateurs d'arborescence des composants, examine les règles d'attribut pour la validation et les compare avec la valeur locale stockée du composant. En cas de valeur locale non valide, JSF ajoute un message d'erreur à l'instance de FacesContext, affichant la même page avec un message d'erreur et avec le cycle de vie JSF se déplaçant davantage vers la phase de réponse de rendu.
# 4) Mise à jour de la valeur du modèle: Une fois que JSF a vérifié les données valides, il définit les propriétés d'objet côté serveur correspondantes sur les valeurs locales du composant et met à jour les propriétés du bean, correspondant à l'attribut value du composant d'entrée. Lorsque renderResponse de l'instance actuelle de FacesContext est appelée par les méthodes updateModels, JSF passe à la phase de réponse de rendu.
# 5) Appeler l'application: Les événements au niveau de l'application, tels que l'envoi d'un formulaire ou le transfert vers une autre page, sont gérés par Java Server Faces pendant cette phase.
# 6) Réponse de rendu: Dans le cas où l'application a des pages JSP, JSF demande au serveur d'application de rendre la page, ajoutant ainsi des composants sur la page à l'arborescence des composants. Sinon, une arborescence de composants déjà construite n'a pas besoin d'ajouter de composants; Le conteneur JSP déplace les balises et rend les composants. L'état de la réponse est enregistré après le rendu du contenu de la vue, les demandes successives pouvant accéder à l'état et à sa disponibilité pour restaurer la phase de vue.
Q # 4) Quelle est la signification des beans gérés dans Java Server Faces?
Répondre: Les Managed Beans sont des beans Java qui comprennent des méthodes getter et setter et dont la logique métier est conçue. Il peut éventuellement avoir un backing bean. Ils agissent comme un modèle pour les composants d'interface utilisateur dans le cadre MVC.
Pour JSF 1.2, il est nécessaire de les enregistrer dans le fichier de configuration JSF, faces-config.xml, alors qu'à partir de JSF 2.0, les annotations sont utilisées pour enregistrer les beans gérés.
Q # 5) Quelles sont les portées des beans gérés?
Répondre: Les Managed Beans sont une classe Java qui se compose d'un ensemble de méthodes et de propriétés getter / setter. Il sert de modèle au framework JSF et offre des fonctionnalités telles que,
- Validation des données des composants
- Gérer l'exécution d'un événement de composant
- Traitement pour décider sur quelle page l'application navigue ensuite
- JSF utilise des beans gérés en les configurant dans un fichier XML ou via des annotations.
Les étendues suivantes sont utilisées pour la classe de bean géré:
- Application
- Session
- Vue
- Demander
- Aucun
- Personnalisé
Q # 6) Qu'est-ce qu'une facette?
Répondre: Les facettes sont un langage de déclaration de page léger qui utilise des modèles de style HTML pour créer une arborescence de composants afin de créer des vues de faces de serveur Java.
Certaines fonctionnalités de Facelets sont répertoriées ci-dessous:
- Il utilise XHTML pour créer des pages Web.
- Outre les bibliothèques de balises JSF et JSTL, il propose des bibliothèques de balises Facelets.
- Prise en charge du langage d'expression, création de modèles de composants et de pages.
Q # 7) Expliquez les avantages de l'utilisation de Facelet.
Répondre: Les avantages sont les suivants:
- Temps de compilation rapide
- Rendu haute performance
- Étend ses fonctionnalités aux composants et autres objets côté serveur via la personnalisation
- Prise en charge de la réutilisation du code via des composants composites et des modèles
- Validation EL lors de la compilation
Q # 8) Liste des balises Facelet utilisées dans Java Server Face.
Répondre: Certaines des balises Facelet utilisées dans JSF sont répertoriées ci-dessous:
- ui: composant définit le composant créé et ajoute à l'arborescence des composants.
- ui: composition définit la composition de la page, utilise éventuellement des modèles et ignore le contenu extérieur.
- ui: débogage définit le composant de débogage créé et ajoute à l'arborescence des composants.
- ui: décorer est similaire à la balise de composant, considérez le contenu en dehors de cette balise.
- ui: définir permet de définir le contenu inséré dans la page par un modèle.
- ui: fragment est similaire au composant et décore la balise. Il considère le contenu en dehors de cette balise.
- ui: inclure réutilise et encapsule le contenu de plusieurs pages.
- ui: insérer as name insère le contenu dans un modèle.
- ui: arrêter transmettez les paramètres au fichier inclus.
- ui: répéter une alternative pour les balises de boucle, comme c: forEach ou c: dataTable.
- ui: supprimer est utilisé pour supprimer le contenu d'une page.
Q # 9) Liste des types de navigation de page pris en charge par JSF.
Répondre: JSF prend en charge les types de navigation de page suivants:
- Navigation conditionnelle
- Navigation en avant ou en redirection
- Navigation implicite
- Navigation via le bean géré
- Navigation via la navigation de redirection
Q # 10) Décrivez les différentes balises de champ de texte proposées par JSF.
Répondre: Les différentes balises de champ de texte sont décrites ci-dessous:
- insère une zone de texte adjacente au champ d'étiquette.
- est utilisé comme conteneur pour saisir de nombreux caractères.
- est un type de champ de texte utilisé pour le champ de mot de passe afin que les données saisies ne soient pas révélées.
Q # 11) Décrivez l'expression de valeur et l'expression de méthode.
SQL Server interroge des exemples avec des réponses
Répondre: L'expression de valeur récupère une valeur et définit une valeur. Ils sont ensuite divisés en expression rvalue et expression lvalue. rvaleur ne peut lire que des données, alors que lvaleur peut lire aussi bien écrire des données.
La méthode publique du bean est appelée par l'expression Method qui renvoie le résultat requis pour valider le composant de données et la gestion des événements.
Q # 12) Quels types de validations sont disponibles dans JSF?
Répondre: Il existe deux types de validations dans JSF, à savoir, déclarative et impérative.
- Déclaratif les validations sont appelées à l'aide de validateurs standard JSF ou de validateurs Bean.
- Impératif les validations sont des validateurs complexes déclarés par l'utilisateur qui remplacent la validation standard car les messages de validation standard ne sont pas adéquats dans tous les cas.
Q # 13) Liste des expressions prises en charge par le langage d'expression JSF.
Répondre: Les expressions prises en charge sont répertoriées ci-dessous:
- Expression de valeur immédiate
- Expression de valeur différée
- Expression de valeur
- Expression de méthode
Q # 14) Décrivez différents types d'événements JSF.
Répondre: Il existe principalement trois types d'événements JSF, à savoir les événements d'action, les événements de changement de valeur et les événements de phase.
- Événements d'action sont générés pour les composants de l'interface utilisateur tels que le bouton de commande ou le lien hypertexte de commande.
- Événements de changement de valeur champ de texte de référence, zone de liste de boutons radio. Tout changement de valeur dans ces composants d'interface utilisateur appellera un événement de changement de valeur.
- Événements de phase sont déclenchés soit au début soit vers la fin de l'une quelconque des six phases du cycle de vie JSF.
Q # 15) Expliquez en détail les composants de la table liés aux données.
Répondre: Les composants responsables de l'affichage des données relationnelles au format tabulaire sont appelés composants de table liés aux données. étiqueter itère sur chacun des enregistrements affichés en lignes, tandis que étiqueter afficher les composants de données.
Certains des attributs de h: dataTable sont cellpadding, cellspacing, bgcolor et border.
Q # 16) Liste des balises de validation disponibles dans JSF.
logiciel d'extraction et de gravure de DVD gratuit
Répondre: Les balises de validation sont répertoriées ci-dessous:
- f: validateLength est utilisé pour valider la longueur de la chaîne.
- f: validateLongRange est utilisé lors de la validation de la plage de valeurs numériques.
- f: validateDoubleRange est utilisé lors de la validation de la plage de valeurs flottantes.
- f: validateRegex: la validation compare une expression régulière donnée aux composants JSF.
Q # 17) Que sont les annotations JSF?
Répondre: L'annotation dans JSF aide au développement d'un code clair et propre. Il peut être utilisé dans des packages, des classes, des constructeurs, des interfaces, des champs, des méthodes, des paramètres, des variables ou des annotations eux-mêmes.
Il existe principalement trois catégories d'annotations - à savoir. Marqueurs, annotation à valeur unique, annotations complètes.
Q # 18) Décrivez le regroupement des ressources.
Répondre: Il est toujours pratique de stocker les étiquettes de l'interface utilisateur, le format de date, les messages d'état et les éléments textuels de l'interface utilisateur tels que le stockage des paramètres pour les paramètres régionaux pour l'internationalisation, etc. dans le fichier de propriétés au lieu de les coder en dur dans chaque page XHTML. Le stockage de ces valeurs constantes dans un fichier et l'affichage de ces valeurs sur différentes pages s'appellent regroupement de ressources.
Le descripteur de déploiement faces-config.xml contient les paramètres de configuration de l'application JSF, dans lesquels nous pouvons configurer le groupe de ressources et y enregistrer ces valeurs.
Q # 19) Énumérez les avantages de l'utilisation du framework JSF.
Répondre: Voici quelques-uns des avantages importants:
- Le framework JSF crée rapidement des interfaces utilisateur avec sa bibliothèque de composants d'interface utilisateur intégrée avec une séparation entre la présentation et le comportement.
- Il possède une architecture riche pour gérer, traiter et valider les entrées des utilisateurs.
- Ses événements sont intégrés au code côté serveur.
- Offre un contrôle au niveau des composants enfichable.
- Prend en charge les fonctionnalités d'accessibilité et d'internationalisation.
Q # 20) Énumérez les avantages du langage d'expression.
Répondre: Le langage d'expression offre les avantages suivants:
- Les auteurs de page peuvent minimiser l'utilisation de scripts dans la page Web
- Offrez une plus grande productivité
- Facile à maintenir
- Courbe d'apprentissage plate
- Inclus dans JSP 2.0, JSF
- Utilisation de l'expression à différentes étapes du cycle de vie de la page
- Définir des données d'objets externes et obtenir ces données à l'aide d'expressions
- Les expressions de méthode offrent la gestion des événements, la validation et d'autres fonctionnalités pour les composants de l'interface utilisateur JSF
Q # 21) Expliquez ce que le répertoire du fichier war de l'application Java Server Faces peut contenir?
Répondre: Le fichier d'archive de l'application Web (war) de l'application JSF contient les éléments suivants:
- web.xml - une ressource de configuration de descripteur d'application Web pour les applications Web.
- Classes essentielles dans un ensemble de fichiers JAR (Java Archive).
- Classes d'application, pages Java Server Faces, autres ressources requises telles que les fichiers image.
- Fichiers de ressources pour la configuration de l'application.
Q # 22) Quels types de balises Facelet sont utilisés dans JSF 2.0?
Répondre: Les différents types de balises Facelet dans JSF 2.0 sont:
- Modèles offrent un style et une mise en page d'interface communs dans les applications Web, ui: insert, ui: define, ui: include et ui: composition.
- Balises de paramètre servent à transmettre des paramètres au fichier modèle.
- Balises personnalisées pour rendre le contenu personnalisé.
- Enlever l'étiquette utilisé pour arrêter le rendu du code JSF commenté côté client.
Q # 23) Décrire les bibliothèques de balises standard JSF
Répondre: La bibliothèque de balises standard JSF se compose de différents types d'entrée HTML. Certains d'entre eux sont énumérés ci-dessous:
- h: inputText: Crée une zone de texte HTML de type texte
- h: inputSecret: Zone de texte HTML du type de mot de passe
- h: inputTextarea: Champ de saisie HTML textarea
- h: inputHidden: Entrée HTML de type masqué
- h: selectBooleanCheckbox: Pour une case à cocher HTML unique
- h: selectManyCheckbox: Pour un groupe de cases à cocher HTML
- h: selectOneRadio: Pour un seul bouton radio HTML
- h: selectOneListBox: Pour la zone de liste unique HTML
Q # 24) Discutez de l'importance de l'annotation @ManagedProperty dans JSF 2.0.
Répondre: À l'aide de l'annotation @ManagedProperty, le bean peut être injecté dans une autre propriété de bean à l'aide de la méthode setter du bean. Nous avons besoin d'un attribut de valeur contenant le nom du bean qui doit être injecté.
Q # 25) Qu'indique l'annotation @ApplicationScoped?
Répondre: L'annotation @ApplicationScoped est utilisée pour définir la portée dans laquelle le bean sera stocké et restera à travers l'interaction de l'utilisateur dans les applications Web. Les beans gérés sont généralement en retard pour instancier.
Afin d'instancier les beans de portée d'application avec le démarrage de l'application. L'attribut Eager est rendu vrai dans le bean géré.
@ManagedBean (désireux = vrai)
@ApplicationScoped
Q # 26) Liste des composants de table liés aux données de JSF 2.0.
Répondre: La balise est utilisée pour créer une table de données et des composants de table liés aux données dans JSF se compose d'éléments tels que le tri des colonnes (croissant / décroissant), les cases à cocher, la pagination.
Q # 27) Liste des différentes implémentations de JSF.
Réponse: Les implémentations sont répertoriées ci-dessous:
Apache MyFaces | Oracle Mojarra | OmniFaces |
---|---|---|
JSF ne prend pas en charge les services middleware tels que JAAS, JNDI, JMS et Java Mail | Prend en charge les services middleware tels que JAAS, JNDI, JMS et Java Mail | |
PrimeFaces | RichFaces | Visages de glace |
Q # 28) Expliquez les attributs immédiats et rendus dans JSF.
Répondre: Lorsque la valeur booléenne d'un attribut immédiat est défini sur true, cela forcera les conversions, les événements et le traitement de validation pendant la phase de demande du cycle de vie JSF.
Attribut rendu déciderait que le composant doit être rendu ou non dans la page d'affichage, il utilise des littéraux arithmétiques et des opérateurs avec l'expression rvalue et non avec l'expression lvalue.
Q # 29) Énumérez les avantages des balises de table de données JSF.
Répondre: Les balises de table de données JSF sont utilisées pour afficher des données relationnelles au format tabulaire sur les pages de vue JSF.
Les avantages offerts par les balises Data Table sont:
- Afin d'afficher des données, la table de données peut parcourir des tableaux ou une collection de valeurs.
- Les balises de table de données offrent des attributs pour modifier ses données affichées sur la page de vue JSF.
Q # 30) Faites la différence entre JSF 1.0 et JSF 2.0.
Répondre: Les différences entre les deux sont énumérées ci-dessous:
JSF1.2 | JSF 2.0 |
---|---|
Les beans gérés sont enregistrés dans faces-config.xml avec JSF 1.2 | Les annotations sont utilisées pour enregistrer les beans gérés dans JSF 2.0 |
Dans JSF 1.0, les servlets de faces sont configurés dans web.xml avec le modèle d'url comme / faces / * | Dans JSF 2.0, les servlets de visages sont configurés dans web.xml avec un modèle d'url comme * .xhtml |
JSF 1.2 a été publié avec EL et une gestion de vue améliorée et unifiée afin de supprimer le couplage étroit avec JSP. | JSF 2.0 offre la prise en charge des demandes GET, une nouvelle portée de vue, l'utilisation d'annotations, des génériques, inclut des facelets comme vue par défaut à la place de JSP et de la gestion des ressources |
JSF 1.0 utilise l'API pour les composants personnalisés | JSP est obsolète dans JSF2.0 et remplacé par Facelets (xhtml) |
Q # 31) Expliquez les meilleures pratiques appliquées pour créer une application JSF.
Répondre: Les meilleures pratiques ou règles à suivre lors du développement Web à l'aide de JSF liées à divers beans de support de portée sont les suivantes:
- Commencez par @RequestScoped Bean jusqu'à ce que les données métier et l'état perdent, puis choisissez la portée de niveau supérieur suivant.
- Pour arrêter de partager des données ou un état entre tous les utilisateurs, évitez la portée @ApplicationScoped.
- Pour arrêter de partager des données ou un état entre tous les onglets du navigateur, évitez @SessionScope.
- Pour éviter de perdre des données et un état sur les requêtes HTTP, évitez @RequestScope.
- Les beans de portée Vue, Flux, Session et Conversation n'ont aucun effet sur les utilisateurs.
- Évitez d'appeler la logique métier dans les méthodes getter Beans de sauvegarde JSF.
- Utilisez le jeu de résultats dans une propriété value.
- La méthode annotée @PostConstruct est utilisée pour calculer le jeu de résultats.
Q # 32) Décrivez l'architecture de JavaServer Faces
Répondre: JavaServer Faces implémente le modèle de conception MVC, les composants sont définis séparément, avec une logique différente.
- Afficher le composant pour la logique de présentation, et
- Le composant de modèle pour la logique métier est implémenté.
- Le composant Controller contrôle la navigation d'une vue à une autre et exécute diverses méthodes de modèle.
La partie contrôleur se compose de
- Servlet contrôleur c.-à-d. VisagesServlet
- Fichier de configuration centralisé, c'est-à-dire faces-config.xml
- Ensemble de gestionnaires d'événements pour les applications Web.
Q # 33) Quelles sont les différences entre JSF et le framework Spring?
Répondre: Les différences entre les deux sont énumérées ci-dessous:
Visages du serveur Java | Printemps |
---|---|
JSF sont utilisés pour créer des interfaces utilisateur basées sur des composants pour une application Web. | Spring utilise DispatcherServlet et le modèle de conception modèle-vue-contrôleur pour l'application Web. |
Il dispose d'un cadre d'interface utilisateur mature, complet et riche, des composants côté serveur du cycle de vie des demandes | Spring propose un cadre d'application pour les applications autonomes, Web et distribuées. |
JSF permet l'intégration avec HTML, JSP dans le développement du composant de vue du contrôleur de vue de modèle. | La vitesse, le marqueur libre, etc. sont utilisés pour le composant de vue avec le cadre Spring |
Il n'a pas de support prédéfini pour intégrer JDBC, EJB, Hibernate et RMI | Il offre un support prédéfini pour JDBC, EJB, Hibernate, RMI, etc. |
JSF est un cadre lourd | Le printemps est un cadre léger |
Il a plus de dépendance API et ne prend pas en charge les implémentations POJO | Il a des implémentations POJO et moins de dépendance API. |
Conclusion
JavaServer Faces est un framework Web Java qui conçoit des composants d'interface utilisateur à l'aide de beans gérés, de backing beans, de Facelets et d'autres bibliothèques personnalisées telles que les faces principales ou les faces de glace.
Les architectes d'application, les développeurs, les auteurs de composants et de pages doivent bien maîtriser divers frameworks tels que Java Server Faces, en plus d'autres frameworks tels que Spring, Hibernate et Struts.
Ce didacticiel sur les questions d'entrevue JSF vous aide à vous préparer à la plupart des entretiens JSF.
lecture recommandée
- Top 20 des programmes d'entretien Java pour la programmation et le codage d'entrevue
- Questions et réponses d'entrevue JSP (mise à jour 2021)
- Plus de 30 questions et réponses d’entrevue TOP Servlet (LISTE 2021)
- Top 50+ Core Java Questions et réponses d'entrevue
- Plus de 30 questions d’entrevue sur les collections Java avec réponses (2021 LIST)
- 25 meilleurs cadres et outils de test Java pour les tests d'automatisation (partie 3)
- Top 20+ Questions et réponses d'entrevue .NET
- Questions et réponses d'entrevue