Etudier Struts2
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--Définition du package d'action-->
<package name="default" extends="struts-default">
<!--Exemple d'action Hello world-->
<action name="hello" class="sample.HelloWorldAction" method="execute">
<result name="success">/view/sample/HelloWorld.jsp</result>
</action>
</struts>
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 la déclaration de type HTML5-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--Le formulaire de saisie utilise les balises Struts2-->
<s:form action="hello">
<s:textfield name="name" />
<s:submit value="Aller à la page Hello World" />
</s:form>
</body>
</html>
HelloWorldAction.java
package sample;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* [Classe d'action HelloWorld]<br>
* <br>
* @author tarosa0001
*/
public class HelloWorldAction {
/**Enregistreur*/
private Logger logger = LogManager.getLogger(HelloWorldAction.class);
/**Nom*/
private String name;
/**
* [Processus d'exécution des actions]<br>
*Exécutez le processus pour générer HelloWorld.<br>
*La méthode à exécuter est struts.Implémentez en utilisant le nom de méthode spécifié dans xml.<br>
*Dans Struts2, la destination de transition de page est déterminée par le résultat du traitement de l'action,
*Cette fois"success"Renvoie la chaîne de caractères fixe de.<br>
* <br>
* @return
*/
public String execute() {
logger.info("Le paramètre entré est "{}"est.", name);
return "success";
}
/**
* [Processus d'acquisition de nom]<br>
*Obtenez le nom.<br>
*Lorsque Struts2 utilise la valeur saisie dans le formulaire comme paramètre
*Comme getter est utilisé, les informations que vous souhaitez utiliser comme paramètre sont
*Déclarez-le comme propriété de la classe Action et préparez un getter.
* <br>
* @nom de retour
*/
public String getName() {
return name;
}
/**
* [Processus de définition du nom]<br>
*Définissez le nom.<br>
*Comme avec getter, préparez un setter pour les valeurs que vous souhaitez transmettre entre les pages.<br>
* <br>
* @nom du paramètre nom
*/
public void setName(String name) {
this.name = name;
}
}
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 transmises entre les messages.-->
Hello Struts2 world, <s:property value="name" />M.
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Struts2-01</display-name>
<welcome-file-list>
<!--Afficher les paramètres du fichier lorsqu'il est habituellement à la racine de l'application-->
<!--Ce n'est pas nécessaire, mais cette fois pour éviter les erreurs de saisie d'URL, d'index.Seulement jsp.-->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--Filtre de servlet Struts2-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!--Définition du filtre à utiliser pour l'URL-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Autre
web.xml
<%@ 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>Insert title here</title>
</head>
<body>
<s:form action="sample_tag">
page<br/>
s:textfield<s:textfield name="user_id" value="USER_ID" size="24" label="Identifiant d'utilisateur"/><br/><br/>
s:password<s:password name="password" value="PASSWD" size="24" label="mot de passe"/><br/><br/>
s:hidden<s:hidden name="item_id" value="HIDDEN"/><br/><br/>
・ Sélectionnez le test(Célibataire)
<select name="select1">
<option value="1">Vers la page du résultat 1</option>
<option value="2">Vers la page du résultat 2</option>
</select><br/><br/>
・ Sélectionnez le test(Multi)
<select name="select2" multiple="multiple">
<option value="A">Type A</option>
<option value="B">Type B</option>
<option value="O">Type O</option>
<option value="AB">Type AB</option>
</select><br/><br/>
・ Test de case à cocher
<input type="checkbox" name="chbox1" value="1" checked="checked" />intéressant
<input type="checkbox" name="chbox1" value="2" />Utile
<input type="checkbox" name="chbox1" value="3" checked="checked" />Pas assez bon
<br/><br/>
・ Test radio
<input type="radio" name="radio1" value="1" checked="checked" />bien
<input type="radio" name="radio1" value="2" />mal
<br/><br/>
<s:submit value="SUBMIT!!" />
</s:form>
</body>
</html>
Sample01Action.java
package sam.tag;
/**
* @author
*/
public class Sample01Action extends AbstractAction{
private String user_id;
private String password;
private String item_id;
private String select1;
private String select2;
private String chbox1;
private String radio1;
/**
* [Processus d'exécution des actions]<br>
* @return
*/
public String execute() {
// final String className = new Object(){}.getClass().getEnclosingClass().getName();
final String methodName = new Object(){}.getClass().getEnclosingMethod().getName();
// System.out.println("className::" + className);
// System.out.println("methodName :" + methodName);
logger.info("▼ Démarrer ▼:{}",methodName);
logger.info("Le paramètre entré est "{}"est.", toString());
short nextPage = Short.parseShort(select1);
try {
if (nextPage == 1) {
return "success1";
} else {
return "success2";
}
} catch (Exception e) {
return "error";
} finally {
logger.info("▲ Fin ▲: exécuter()");
}
}
@Override
public String toString() {
return "Sample01Action [user_id=" + user_id + ", password=" + password + ", item_id=" + item_id + ", select1="
+ select1 + ", select2=" + select2 + "]";
}
//Vous trouverez ci-dessous des getters et des setters générés automatiquement
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getItem_id() {
return item_id;
}
public void setItem_id(String item_id) {
this.item_id = item_id;
}
public String getSelect1() {
return select1;
}
public void setSelect1(String select1) {
this.select1 = select1;
}
public String getSelect2() {
return select2;
}
public void setSelect2(String select2) {
this.select2 = select2;
}
public String getChbox1() {
return chbox1;
}
public void setChbox1(String chbox1) {
this.chbox1 = chbox1;
}
public String getRadio1() {
return radio1;
}
public void setRadio1(String radio1) {
this.radio1 = radio1;
}
}
result1.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>Page de résultats</title>
</head>
<body>
Résultat 1 page<br/>
s:textfield:<s:property value="user_id" /><br/>
s:password:<s:property value="password" /><br/>
s:hidden:<s:property value="item_id" /><br/>
select1:<s:property value="select1" /><br/>
select2:<s:property value="select2" /><br/>
checkbox:<s:property value="chbox1" /><br/>
radio:<s:property value="radio1" /><br/>
</body>
</html>