Je développe une Struts2 très simple aplication, et je reçois cet étrange (et facile à résoudre, je suis sûr) Problème:Comment valider un formulaire que si l'utilisateur a soumis quelque chose (avec Struts2)
quand j'accède directoly à URL de connexion, il montre formulaire de connexion (champs nom d'utilisateur et texte de mot de passe) avec ces erreurs:
Name field is required
Password is required
le champ sont vides, parce que c'est la première fois que l'utilisateur y entrer, donc je tiens à dire au système de validation Struts2 de ne pas valider à moins que l'utilisateur ne soumette le formulaire de connexion avec un nom d'utilisateur et un mot de passe. Je suis sûr que je néglige ou oublie quelque chose.
code d'action Login.java:
package actions.access;
import actions.base.BaseAction;
import data.Webuser;
public class Login extends BaseAction {
private Webuser user;
public String execute() {
if (user != null) {
session = this.getSession();
if (session.get("user-logged") == null) {
session.put("user-logged", user.getId());
}
}
return SUCCESS;
}
public void validate() {
if (user != null) {
Webuser realUser = services.getWebuserByNickname(user.getNickname());
if (realUser.getPass().equals(user.getPass())) {
user.setId(realUser.getId());
} else {
addFieldError("user.nickname", "Nickname or password are wrong");
}
}
}
public Webuser getUser() {
return user;
}
public void setUser(Webuser user) {
this.user = user;
}
}
Code Connexion-validation.xml:
<field name="user.nickname">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Login name is required</message>
</field-validator>
</field>
<field name="user.pass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Password is required</message>
</field-validator>
</field>
Toute sorte d'aide sera appréciée. Merci d'avance.
Vous n'avez pas besoin de deux actions et l'utilisation de deux actions ajoute du code inutile. –