Certains peuvent l'appeler Legacy, mais il s'agit d'un article d'introduction sur Struts 2. Récemment, de nouvelles technologies côté client ont évolué et certaines personnes peuvent dire que la technologie côté serveur elle-même, sans parler de Struts2, est un héritage.
Cependant, si vous rencontrez quelque chose qui est actif et émouvant, vous devez vraiment le comprendre. J'ai récemment rencontré un tel modèle et étudié dur.
Quand j'ai essayé de faire HelloWorld, j'ai eu du mal à trouver un document qui couvrait tout, donc j'écrirai cet article pour rappeler cette époque.
Struts2 semble recevoir beaucoup de mises à niveau, même si on dit qu'il s'agit d'un héritage, et il est encore nouveau. Au moment de la rédaction de cet article, j'aimerais vous présenter via Hello World ce que vous pouvez créer un environnement de développement Struts2 en utilisant la dernière version.
Une infrastructure d'application Web qui utilise le modèle MVC implémenté en Java. Le modèle MVC est l'idée de séparer le modèle (données), la vue (écran) et le contrôleur (logique métier). Cependant, bien que Struts2 ait une fonction pour séparer V et C, il ne fournit pas de fonction pour séparer M de C, donc il est souvent réalisé en introduisant un mappeur OR etc. séparément.
Dans le passé, il y avait un framework appelé Struts, et il fut un temps où il était prédominant, mais Struts 2 est fondamentalement différent. Le processus de développement original est complètement différent, il semble qu'il ait été développé sous le nom "WebWork2", et ce nom a été changé en Struts2 avec la fin du support pour Struts.
Struts2 est toujours pris en charge et de nouvelles versions sont publiées assez souvent.
C'est un peu hors sujet, mais en déployant Struts2 dans des applications Web à grande échelle telles que les systèmes d'entreprise, vous pouvez considérablement améliorer votre productivité. De plus, bien que cela ne se limite pas à Struts2, en introduisant un framework, il est possible d'absorber et de niveler les différences de politiques d'implémentation dues aux habitudes des développeurs. Cependant, l'auteur pense qu'il n'est pas adapté au développement à petite échelle car il prend du temps à introduire.
A partir de maintenant, nous allons créer un environnement de développement pour réaliser Hello World avec Struts2. Il existe trois façons de le construire.
Cette fois, je vais le construire moi-même.
2 nécessite d'abord d'étudier Maven et peut ne pas être disponible dans certains environnements. Même si vous essayez d'utiliser 3, vous ne pouvez pas le démarrer à partir de l'état par défaut avec une erreur, il est donc plus rapide de le créer vous-même que de l'utiliser.
Par conséquent, construisons-le nous-mêmes, également en bougeant nos mains et en nous en souvenant!
L'auteur utilise un environnement de développement intégré pour le développement de base. Je pense que Eclipse de base sera utilisé pour le développement Java, mais cette fois j'utiliserai également Eclipse.
L'environnement que j'utilise est "Eclipse 4.4 (Luna)". Les versions d'Eclipse peuvent être différentes, les lecteurs doivent donc utiliser celles qui leur sont proches.
① Sélectionnez Fichier > Nouveau > Autre > Web > Projet Web dynamique et passez au suivant.
② Entrez les informations suivantes pour passer à la suivante.
Éléments de réglage | Définir la valeur |
---|---|
Nom du projet | Struts2HelloWorld ※Nom du projetは自由に決めていただいて構いません |
Runtime cible | Tomcat8 (Java8) |
Version du module Web dynamique | 3.1 |
Constitution | Tomcat8 (Java8)デフォルトConstitution |
③ Ajoutez le dossier «ressources» en ajoutant un dossier et passez au suivant.
(4) Vérifiez la génération du descripteur de déploiement web.xml et terminez.
⑤ Si vous pouvez créer un projet comme indiqué dans l'image ci-dessous, la création du projet est terminée.
Présentez Struts2 au projet créé.
Téléchargez Struts2 depuis ici. Au moment de la rédaction de cet article, la dernière version semble être "2.5.14.1". Bien qu'il ne soit pas utilisé dans HelloWorld, téléchargez "struts-2.5.14.1-all.zip" avec un exemple d'application. Veuillez également télécharger "log4j-core-2.9.1.jar" séparément car vous en aurez besoin plus tard. Veuillez faire correspondre la version du fichier jar téléchargé ici avec log4j-api.
"Struts-2.5.14.1-min-lib.zip" est un projet Struts2 vide avec une configuration minimale. Dans mon environnement, je ne pouvais pas commencer par une erreur depuis le début. C'était un problème à résoudre, donc je l'ai construit moi-même depuis le début, mais j'apprécierais que vous puissiez commenter si vous pouviez bien l'utiliser.
Présentez Struts 2 à votre projet. Décompressez le fichier struts-2.5.14.1-all.zip téléchargé et copiez le fichier jar suivant du dossier lib dans le dossier «Project Root / Struts2HelloWorld / WebContent / WEB-INF / lib».
nom de fichier | Remarques |
---|---|
commons-fileupload-1.3.3.jar | |
commons-io-2.5.jar | |
commons-lang-2.4.jar | |
commons-lang3-3.6.jar | |
commons-logging-1.1.3.jar | |
freemarker-2.3.26-incubating.jar | |
javassist-3.20.0-GA.jar | |
log4j-api-2.9.1.jar | |
log4j-core-2.9.1.jar | Il s'agit d'un fichier jar téléchargé séparément. log4j-Veuillez faire correspondre la version avec l'API. |
ognl-3.1.15.jar | |
struts2-core-2.5.14.1.jar | |
xmlpull-1.1.3.1.jar | |
xpp3_min-1.1.4c.jar | |
xstream-1.4.10.jar |
Il s'agit de la configuration minimale de la bibliothèque pour exécuter Struts2.
Créez le fichier de configuration Struts2 "struts.xml" dans "/ Struts2 HelloWorld / resources".
En passant, Struts2 vous permet d'implémenter une application sans fichier de configuration XML, ce qui est appelé configuration zéro. Cependant, les développeurs aiment-ils XML? Même si Struts2 est introduit, la plupart des cas que j'ai vus sont écrits en XML. Bien qu'il y ait un avantage que les paramètres de l'application ne peuvent être compris qu'en regardant ce fichier, l'auteur pense qu'il n'y a rien de mieux que pas, compte tenu de la difficulté d'écrire le fichier de paramètres.
Surtout dans Struts2, comme mentionné au début, il est souvent utilisé en combinaison avec d'autres frameworks tels que Spring et OR mapper, et chaque framework nécessite un fichier de paramètres XML, de sorte que la quantité de XML à gérer augmente considérablement. Cela devrait être une configuration zéro pour libérer le développeur de cet enfer XML, mais pour une raison quelconque, il n'est pas utilisé (rires)
Cela fait longtemps, mais cette fois, je vais écrire le fichier de paramètres ensemble pour plus de cas. J'ai inclus des commentaires avec, mais sautez-les pour le moment.
■ Contenu de struts.xml
Placez le fichier de configuration "log4j2.xml" de la bibliothèque de sortie de journal "log4j2".
■ Contenu de log4j2.xml (veuillez restaurer la partie de commentaire arbitrairement)
<! - Réglage de l'enregistreur utilisé pour la sortie->
Ce n'est pas nécessaire, mais il est pratique de placer un fichier appelé "struts.properties" dans le même dossier et d'écrire "struts.ui.theme = simple" car cela peut supprimer la génération automatique de balises de feuille de style par Struts2.
À ce stade, l'introduction de Struts 2 est terminée. J'ai fait pas mal de travail, je vais donc lister l'arborescence des projets que j'ai configurés. Si le projet a l'arborescence suivante, la construction de l'environnement de développement est terminée.
■ Arborescence du projet Racine de l'application ├─src ├─resources │ log4j2.xml │ struts.properties │ struts.xml │ ├─build │ └─classes * Les mêmes matériaux placés dans le dossier source sont automatiquement générés ici. │ log4j2.xml │ struts.properties │ struts.xml └─WebContent ├─META-INF │ MANIFEST.MF │ └─WEB-INF │ web.xml │ └─lib commons-fileupload-1.3.3.jar commons-io-2.5.jar commons-lang-2.4.jar commons-lang3-3.6.jar commons-logging-1.1.3.jar freemarker-2.3.26-incubating.jar javassist-3.20.0-GA.jar log4j-api-2.9.1.jar log4j-core-2.9.1.jar ognl-3.1.15.jar struts2-core-2.5.14.1.jar xmlpull-1.1.3.1.jar xpp3_min-1.1.4c.jar xstream-1.4.10.jar
Maintenant que nous avons construit l'environnement de développement, nous allons commencer à implémenter l'application elle-même.
Préparez la première page lors de l'accès à l'application. Cette fois, nous allons l'implémenter en utilisant JSP.
Cliquez avec le bouton droit sur WebContent> Nouveau> JSP pour ouvrir la boîte de dialogue. Entrez "index.jsp" dans le nom du fichier pour terminer.
■index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<! - Activer la bibliothèque de balises Struts2-> <%@ taglib prefix="s" uri="/struts-tags"%> <! - Utiliser une déclaration de type HTML5->
Dans Struts2, la classe responsable du traitement des applications Web, par exemple lorsqu'elles sont soumises par JSP, est appelée Action. La page de destination d'action et de transition est définie dans struts.xml, mais comme l'explication sera donnée plus tard, veuillez implémenter comme suit pour le moment.
Cliquez avec le bouton droit sur le dossier src> Nouveau> De la classe, entrez les informations suivantes pour terminer.
Éléments d'entrée | Valeur d'entrée |
---|---|
paquet | sample |
Nom | HelloWorldAction |
■HelloWorldAction
package sample;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
/** Nom */ private String name;
/**
[Processus d'exécution de l'action]
Exécutez le processus pour sortir Hello World.
Implémentez la méthode à exécuter en utilisant le nom de méthode spécifié dans struts.xml.
Dans Struts2, la destination de transition de page est déterminée par le résultat du traitement de l'action,
Cette fois, la chaîne de caractères fixe de "succès" est renvoyée.
*
* @return
*/
public String execute() {
logger.info ("Le paramètre entré est" {} ".", nom);
return "success";
}
/**
[Processus d'acquisition du nom]
Obtenez le nom.
Lorsque Struts2 utilise la valeur saisie dans le formulaire comme paramètre
Comme getter est utilisé, les informations que vous souhaitez utiliser en tant que paramètre sont
Déclarez-le comme une propriété de la classe Action et préparez un getter.
*
nom @return */ public String getName() { return name; }
/**
[Processus de définition du nom]
Définissez le nom.
Comme pour le getter, préparez un setter pour les valeurs que vous souhaitez transmettre entre les pages.
*
@param nom nom */ public void setName(String name) { this.name = name; } }
Implémentez la destination de la transition lorsque vous appuyez sur le bouton de la première page. Créez un dossier vue / exemple dans le répertoire WebContent et placez-y la page de destination de la transition. Le répertoire d'emplacement lui-même peut être n'importe où dans WebContent, mais cette fois, ce sera le répertoire ci-dessus. Ajoutez «HelloWorld.jsp» au dossier exemple dans la même procédure que la page supérieure.
■HelloWorld.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello Struts2 world!</title>
</head>
<body>
<! - Affiche les données passées entre les messages. -> Bonjour le monde Struts2, <s: property value = "name" />