Top 50 des questions et réponses d'entretien avec Struts (2025)
Voici les questions et réponses d'entretien avec Struts pour les candidats débutants et expérimentés pour obtenir l'emploi de leurs rêves.
1. Quels sont les composants de Struts Framework ?
Le framework Struts est composé des composants suivants :
- Servlets Java
- JSP (pages du serveur Java)
- Balises personnalisées
- Ressources de messages
Téléchargement PDF gratuit : Questions et réponses pour l'entretien avec Struts
2. Quel est le rôle d'un gestionnaire dans les applications basées sur MVC ?
C'est le travail des gestionnaires de transférer les requêtes vers les modèles appropriés car elles sont liées à la couche modèle de l'architecture MVC. Les gestionnaires utilisent les informations de mappage des fichiers de configuration pour le transfert des demandes.
3. Quel est le flux de requêtes dans les applications basées sur Struts ?
Les applications basées sur Struts utilisent le modèle de conception MVC. Le flux des demandes est le suivant :
- L'utilisateur interagit avec View en cliquant sur n'importe quel lien ou en soumettant n'importe quel formulaire.
- Lors de l'interaction de l'utilisateur, la demande est transmise au contrôleur.
- Le contrôleur est responsable de transmettre la demande à l’action appropriée.
- L'action est chargée d'appeler une fonction dans le modèle dont toute la logique métier est implémentée.
- La réponse de la couche modèle est reçue en retour par l'action qui la transmet ensuite vers la vue où l'utilisateur peut voir la réponse.
4. Quel fichier est utilisé par le contrôleur pour obtenir les informations de mappage pour le routage des requêtes ?
Le contrôleur utilise un fichier de configuration « struts-config.xml pour obtenir toutes les informations de mappage afin de décider quelle action utiliser pour le routage de la demande de l'utilisateur.
5. Quel est le rôle de la classe Action dans Struts ?
Dans Struts, la classe Action agit en tant que contrôleur et effectue les tâches clés suivantes :
- Après avoir reçu la demande de l'utilisateur, il traite la demande de l'utilisateur.
- Utilise le modèle approprié et extrait les données du modèle (si nécessaire).
- Sélectionne la vue appropriée pour afficher la réponse à l'utilisateur.
6. Comment un bean actionForm est-il créé ?
Substitut
Le bean actionForm est créé en étendant la classe org.apache.struts.action.ActionForm
In the following example we have created an actionForm bean with the name 'testForm':
import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.*; public class testForm extends ActionForm { private String Id=null; private String State=null; public void setId(String id){ this.Id=id; } public String getId(){ return this.Id; } public void setState(String state){ this.State=state; } public String getState(){ return this.State; }
7. Quels sont les deux types de validations pris en charge par Validator FrameWork ?
Validator Framework est utilisé pour la validation des données du formulaire. Ce cadre fournit deux types de validations :
- Validation côté client sur le navigateur de l'utilisateur
- Validation côté serveur
8. Quelles sont les étapes d’installation de Struts ?
Pour utiliser le framework Struts, il nous suffit d'ajouter le fichier Struts.Jar dans notre environnement de développement. Une fois le fichier jar disponible dans CLASSPATH, nous pouvons utiliser le framework et développer des applications basées sur Strut.
9. Comment la validation côté client est-elle activée sur un formulaire JSP ?
Afin d'activer la validation côté client dans Struts, nous devons d'abord activer le plug-in de validation dans le fichier struts-config.xml. Cela se fait en ajoutant les entrées de configuration suivantes dans ce fichier :
<!-- Validator plugin --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in>
Ensuite, les règles de validation sont définies dans le fichier validation.xml. Si un formulaire contient un champ e-mail et que nous souhaitons activer la validation côté client pour ce champ, le code suivant est ajouté dans le fichier validation.xml :
<form name="testForm"> <field property="email" depends="required"> <arg key="testForm.email"/> </field> </form>
10. Comment la balise de mappage d'action est-elle utilisée pour le transfert de requêtes dans le fichier de configuration Struts ?
Dans le fichier de configuration Struts (struts-config.xml), les options de transfert sont définies sous la balise action-mapping.
Dans l'exemple suivant, lorsqu'un utilisateur clique sur le lien hypertexte test.do, la demande sera transmise à /pages/tests.jsp en utilisant les configurations suivantes du fichier struts-config.xml :
<action path="/test" forward="/pages/testing.jsp">
Cette redirection aura lieu lorsque l'utilisateur cliquera sur le lien hypertexte suivant sur la page jsp :
<html:link</strong> page="/test.do</strong>">Controller Example</html:link>
11. Comment contrôler la soumission de formulaires en double dans Struts ?
Dans Struts, la classe action fournit deux méthodes importantes qui peuvent être utilisées pour éviter les soumissions de formulaires en double.
La méthode saveToken() de la classe d'action génère un jeton unique et l'enregistre dans la session de l'utilisateur. La méthode isTokenValid() est ensuite utilisée pour vérifier l'unicité des jetons.
12. Dans Struts, comment accéder aux beans Java et à leurs propriétés ?
Bean Tag Library est une bibliothèque Struts qui peut être utilisée pour accéder aux beans Java.
13. Quel fichier de configuration est utilisé pour stocker les informations de configuration JSP dans Struts ?
Pour les détails de configuration JSP, le fichier Web.xml est utilisé.
14. Quel est le but de la méthode Execute de la classe d'action ?
La méthode Execute de la classe d'action est responsable de l'exécution de la logique métier. Si un traitement est requis à la demande de l'utilisateur, il est effectué selon cette méthode. Cette méthode renvoie l'objet actionForward qui achemine l'application vers la page appropriée.
Dans l'exemple suivant, la méthode d'exécution renverra un objet d'actionForward défini dans struts-config.xml avec le nom « exampleAction » :
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class actionExample extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{ return mapping.findForward("exampleAction"); } }
15. Quelle est la différence entre les fichiers validation.xml et validator-rules.xml dans le framework de validation Struts ?
Dans Validation.xml, nous définissons des règles de validation pour tout bean Java spécifique tandis que dans le fichier validator-rules.xml, des règles de validation standard et génériques sont définies.
16. Comment pouvons-nous afficher toutes les erreurs de validation à l'utilisateur sur la page JSP ?
Pour afficher toutes les erreurs de validation en fonction des règles de validation définies dans le fichier validation.xml, nous utilisons balise dans notre fichier JSP.
17. Qu'est-ce que la gestion déclarative des exceptions dans Struts ?
Lorsque la logique de gestion des exceptions est définie dans struts-config.xml ou dans la balise d'action, on parle de gestion déclarative des exceptions dans Struts.
Dans l'exemple suivant, nous avons défini une exception dans le fichier struts-config.xml pour NullPointerException :
<global-exceptions> <exception key="test.key" Type="java.lang.NullPointerException" Path="/WEB-INF/errors/error_page.jsp" </global-exceptions>
18. Qu'est-ce que DynaActionForm ?
DynaActionForm est un type spécial de classe actionForm (sous-classe de la classe ActionForm) utilisé pour créer dynamiquement des beans de formulaire. Il utilise des fichiers de configuration pour la création du bean de formulaire.
19. Quels changements de configuration sont nécessaires pour utiliser Tiles dans Struts ?
Pour créer des composants réutilisables avec le framework Tiles, nous devons ajouter le code de définition de plugin suivant dans le fichier struts-config.xml :
<plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> </plug-in>
20. Quelle est la différence entre Jakarta Struts et Apache Struts ? Lequel vaut-il mieux utiliser ?
Les deux sont identiques et il n’y a aucune différence entre eux.
21. À quoi sert le fichier de configuration Struts.xml ?
Le fichier Struts.xml est l'un des fichiers de configuration clés du framework Struts qui est utilisé pour définir le mappage entre l'URL et l'action. Lorsqu'une demande d'utilisateur est reçue par le contrôleur, celui-ci utilise les informations de mappage de ce fichier pour sélectionner la classe d'action appropriée.
22. Comment les bibliothèques de balises sont définies dans Struts ?
Les bibliothèques de balises sont définies dans le fichier de configuration (web.xml) à l'intérieur balise comme suit :
<taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib>
23. Quelle est la signification des balises logiques dans Struts ?
L'utilisation de balises logiques dans Struts aide à écrire un code propre et efficace au niveau de la couche de présentation sans utiliser de scriptlets.
24. Quels sont les deux types de portée pour les formbeans ?
- Portée de la demande : Les valeurs Formbean sont disponibles dans la requête actuelle uniquement
- Portée de la session : Les valeurs Formbean sont disponibles pour toutes les requêtes de la session en cours.
25. Comment pouvons-nous regrouper les actions associées dans un seul groupe dans Struts ?
Pour regrouper plusieurs actions liées dans un seul groupe, nous pouvons utiliser la classe DispatcherAction.
26. Quand devons-nous utiliser SwtichAction ?
Le meilleur scénario pour utiliser la classe SwitchAction est lorsque nous avons une application modulaire avec plusieurs modules fonctionnant séparément. En utilisant la classe SwitchAction, nous pouvons passer d'une ressource dans un module à une autre ressource dans un module différent de l'application.
27. Quels sont les avantages du framework Struts ?
Struts est basé sur MVC et il existe donc une bonne séparation des différentes couches dans Struts, ce qui facilite le développement et la personnalisation des applications Struts. L'utilisation de différents fichiers de configuration rend les applications Struts facilement configurables. De plus, Struts est open source et donc rentable.
28. Quelles sont les étapes requises pour une migration d'application de Struts1 vers Struts2 ?
Les étapes suivantes sont requises pour la migration de Struts1 vers Struts2 :
- Déplacez Struts1 actionForm vers Struts2 POJO.
- Convertir le fichier de configuration Struts1 (struts-config.xml) en fichier de configuration Struts2 (struts.xml)
29. Comment les propriétés d'un formulaire sont-elles validées dans Struts ?
Pour la validation des propriétés renseignées, la méthode validate() de la classe ActionForm est utilisée avant de gérer le contrôle du formbean vers la classe Action.
30. À quoi sert la méthode de réinitialisation de la classe ActionForm ?
La méthode reset de la classe actionForm est utilisée pour effacer les valeurs d’un formulaire avant le lancement d’une nouvelle requête.
31. Quels sont les inconvénients des Struts ?
Bien que Struts présente un grand nombre d’avantages, il nécessite également une courbe d’apprentissage plus longue et réduit également la transparence dans le processus de développement.
Struts manque également de documentation appropriée et pour bon nombre de ses composants, les utilisateurs ne peuvent pas obtenir d'aide en ligne.
32. À quoi sert le fichier resourcebundle.properties dans le cadre de validation Struts ?
Le fichier resourcebundle.properties est utilisé pour définir des messages d'erreur spécifiques dans des paires clé-valeur pour toutes les erreurs possibles pouvant survenir dans le code.
Cette approche permet de garder le code propre car le développeur n'a pas besoin d'intégrer tous les messages d'erreur dans le code.
33. Puis-je avoir html propriété de formulaire sans méthodes formbean getter et setter associées ?
Pour chaque propriété de formulaire html, les méthodes getter et setter dans le formbean doivent être définies, sinon l'application génère une erreur.
34. Combien de contrôleurs de servlets sont utilisés dans une application Struts ?
Le framework Struts fonctionne sur le concept d'approche de contrôle centralisé et l'ensemble de l'application est contrôlé par un seul contrôleur de servlet. Par conséquent, nous n’avons besoin que d’un seul contrôleur de servlet dans une application de servlet.
35. Pour une seule application Struts, pouvons-nous avoir plusieurs fichiers struts-config.xml ?
Nous pouvons avoir n'importe quel nombre de fichiers Struts-config.xml pour une seule application.
Nous avons besoin des configurations suivantes pour cela :
<servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value> /WEB-INF/struts-config.xml /WEB-INF/struts-config_user.xml /WEB-INF/struts-config_admin.xml </param-value> </init-param> ............. ............. </servlet>
36. Quels composants du modèle sont pris en charge par Struts ?
Struts prend en charge tous les types de modèles, notamment les beans Java, EJB et CORBA. Cependant, Struts ne prend en charge aucun modèle spécifique et c'est le choix du développeur d'opter pour n'importe quel modèle.
37. Quand est-il utile d'utiliser IncludeAction ?
IncludeAction est une classe d'action fournie par Struts qui est utile lorsqu'une intégration est requise entre Struts et une application basée sur Servlet.
38. Le filetage Struts est-il sécurisé ?
Oui, les Struts sont thread-safe. Dans Struts, un nouvel objet servlet n'est pas requis pour gérer chaque requête ; au lieu de cela, un nouveau thread d'objet de classe d'action est utilisé pour chaque nouvelle demande.
39. Quelles modifications de configuration sont nécessaires pour utiliser les fichiers de ressources dans Struts ?
Les fichiers de ressources (fichiers .properties) peuvent être utilisés dans Struts en ajoutant l'entrée de configuration suivante dans le fichier struts-config.xml :
<message-resources parameter="com.login.struts.ApplicationResources"/>
40. Comment les beans imbriqués peuvent-ils être utilisés dans les applications Struts ?
Struts fournit une bibliothèque de balises distincte (Nested Tag Library) à cet effet. En utilisant cette bibliothèque, nous pouvons imbriquer les beans dans n'importe quelle application basée sur Struts.
41. Quelles sont les classes de base du framework Struts ?
Voici les classes de base fournies par Struts Framework :
- Classe d'action
- Classe ActionForm
- Classe ActionMapping
- Classe ActionForward
- Classe ActionServlet
42. Pouvons-nous gérer les exceptions dans Struts par programmation ?
Oui, nous pouvons gérer les exceptions dans Struts par programme en utilisant des blocs try, catch dans le code.
try { // Struts code } Catch (Exception e) { // exception handling code }
43. Le framework Struts fait-il partie de J2EE?
Bien que le framework Struts soit basé sur des technologies J2EE telles que JSP, Java Beans, Servlets, etc., il ne fait pas partie des normes J2EE.
44. Comment le mappage d'actions est-il configuré dans Struts ?
Les mappages d'actions sont configurés dans le fichier de configuration struts-config.xml sous la balise comme suit:
<pre><action-mappings> <action path="/login" type="login.loginAction" name="loginForm" input="/login.jsp" scope="request" validate="true"> <forward name="success" path="/index.jsp"/> <forward name="failure" path="/login_error.jsp"/> </action> </action-mappings>
45. Quand faut-il opter pour le framework Struts ?
Les entretoises doivent être utilisées lorsqu'une ou plusieurs des conditions suivantes sont remplies :
- Un développement d’applications très robuste au niveau de l’entreprise est requis.
- Une application réutilisable et hautement configurable est requise.
- Une application faiblement couplée, basée sur MVC, est requise avec une séparation claire des différentes couches.
46. Pourquoi ActionServlet est singleton dans Struts ?
Dans le framework Struts, actionServlet agit comme un contrôleur et toutes les requêtes faites par les utilisateurs sont contrôlées par ce contrôleur. ActionServlet est basé sur le modèle de conception singleton car un seul objet doit être créé pour cette classe de contrôleur. Plusieurs threads sont créés ultérieurement pour chaque demande d'utilisateur.
47. Quelles sont les étapes requises pour configurer le cadre de validation dans Struts ?
Les étapes suivantes sont nécessaires pour configurer le cadre de validation dans Struts : – Mauvaise orthographe
- Dans le répertoire WEB-INF, placez les fichiers valdator-rules.xml et validation.xml.
- Activez le plugin de validation dans les fichiers struts-config.xml en ajoutant ce qui suit :
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug-in>
48. Quelles technologies peuvent être utilisées dans View Layer dans Struts ?
Dans Struts, nous pouvons utiliser l'une des technologies suivantes dans la couche de vue :
- JSP
- HTML
- XML/XSLT
- Fichiers WML
- Modèles de vélocité
- Servlets
49. Quelles sont les conditions pour qu'actionForm fonctionne correctement ?
ActionForm doit remplir les conditions suivantes pour fonctionner correctement :
- Il doit avoir un constructeur sans argument.
- Il doit avoir des méthodes publiques getter et setter pour toutes ses propriétés.
50. Quelle bibliothèque est fournie par Struts pour les éléments de formulaire tels que les cases à cocher, les zones de texte, etc. ?
Struts fournit une bibliothèque de balises HTML qui peut être utilisée pour ajouter des éléments de formulaire tels que des champs de texte, des zones de texte, des boutons radio, etc.
Ces questions d'entretien vous aideront également dans votre soutenance
Merci beaucoup monsieur, génial ;) :) le lien de téléchargement du pdf ne fonctionne pas. Merci
Erreur corrigée ! Merci pour le signalement
Merci Monsieur :):)