Création d'un formulaire avec Struts 2.
 

Impossible de parler d'application web sans aborder les formulaire.

On reprend notre projet de l'article Struts 2 – internationalisation : struts2-test01.war (1)

 
Nous allons créer un formulaire d'inscription qui demande:
  • un email
  • un nom
  • un mot de passe
  • un age
 
 
Commençons par ajouter le texte affiché dans notre formulaire en utilisant les fichiers properties:
 
package_fr.properties :
On ajoute les entrées suivantes:
register.email=Votre email
register.nom=Votre nom
register.mdp=Votre mot de passe
register.age=Votre age
register.btn=Inscription
Bonjour=Bonjour
 
package_en.properties :
On ajoute les entrées suivantes:
register.email=Your email
register.nom=Your name
register.mdp=Your password
register.age=Your age
register.btn=Registration
Bonjour=Hello
 
 
 
Créer une classe User qui représente l'internaute et qui sera donc destinée à stocker les données entrées dans le formulaire:
 
  • créer un package fr.tuto.bean
  • y créer la classe User.java
 
User.java :
package fr.tuto.bean;
 
public class User{
private static final long serialVersionUID = 1L;
String email;
String nom;
String mdp;
Integer age;
 
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getMdp() {
return mdp;
}
public void setMdp(String mdp) {
this.mdp = mdp;
}
public Integer getAge() {
return age;
}
/*
public void setAge(Integer age) {
this.age = age;
}*/
//Modifiez le setter setAge.
//Cela est nécessaire car le formulaire renvoie uniquement des données de type String
public void setAge(String age){
try{
this.age = Integer.parseInt(age);
}catch(Exception e){
System.out.println(this.getClass().toString() + e);
}
}
 
}
 
 
 
Créer l'action qui sera appelée par le formulaire et qui fait le "relais" entre le formulaire et le classe User.
 
  • créer un package fr.tuto.beanAction
  • y créer la classe RegisterAction.java
 
RegisterAction.java :
package fr.tuto.beanAction;
 
import com.opensymphony.xwork2.ActionSupport;
import fr.tuto.bean.User;
 
public class RegisterAction extends ActionSupport {
private static final long serialVersionUID = 1L;
 
private User user;
 
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String inscription(){
System.out.println(this.getClass() + " inscription()");
return SUCCESS;
}
}
 
 
 
On implémente la nouvelle action qui sera appelée par le formulaire:
 
struts.xml :
(entre les balises <package></package> )
<action name="Register" class="fr.tuto.beanAction.RegisterAction" method="inscription">
<result name="success">success_register.jsp</result>
<result name="input">Welcome.jsp</result>
</action>
success: les données ont été validées
input:il manque des données ou elles ne sont pas toutes correctes
 
 
 
Ajouter le code du formulaire:
 
Welcome.jsp :
<s:form action="Register" method="post">
<s:textfield label="%{getText('register.email')}" name="user.email" size="30"/>
<s:textfield label="%{getText('register.nom')}" name="user.nom" size="30"/>
<s:password label="%{getText('register.mdp')}" name="user.mdp" size="30"/>
<s:textfield label="%{getText('register.age')}" name="user.age" size="2"/>
<s:submit value="%{getText('register.btn')}" align="center"/>
</s:form>
 
 
 
Dans WebContent/pages , créer le fichier success_register.jsp
 
Ce fichier sert à afficher une réponse en cas de succès de l'envoi du formulaire.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><s:text name="Welcome.title"></s:text></title>
</head>
<body>
<s:text name="Bonjour" /><s:property value="user.nom" />
</body>
</html>
 
 
A cette étape, le projet est le suivant:

 
Lancer le projet (2).
 
Remplir le formulaire et vérifier si success_register.jsp affiche bien votre nom.
 
 
Dans le prochain billet Struts 2 Les formulaires validation.xml , nous verrons comment valider les données du formulaire.
 
 
———————————————-
 
(1)Ce .war ne contient pas les librairies.
Ajoutez les librairies du projet struts2-blank.war dans WebContent/WEB-INF/lib du projet struts2-test01
(2) click droit sur le projet, Run As -> Run on Server

By Clem