Fonction validate en Struts

Résolu/Fermé
missihafid Messages postés 59 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 5 avril 2014 - Modifié par missihafid le 28/03/2014 à 18:49
missihafid Messages postés 59 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 5 avril 2014 - 5 avril 2014 à 19:17
Bonjour,
J'ai un problème c'est que la validation des input texte ça marche pas. lors de validation de formulaire, il me redirige directe dans le fichier failure.jsp.

  

//login.jsp

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<html:errors/>
<html:form action="login.do" method="post">
login :<html:text property="login"/><br/>
mot passe :<html:text property="pass"/><br/>
<br><html:submit value="valider"/>

</html:form>
</body>
</html:html>
/////////////////
//voici le code de classe LoginAction
package controlor;

import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import view.LoginForm;

public class LoginAction extends Action {
public org.apache.struts.action.ActionForward execute(

org.apache.struts.action.ActionMapping mapping,
org.apache.struts.action.ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) throws Exception {
LoginForm myForm=(LoginForm)form;

//String login=myForm.getLogin();

//HttpSession ses=request.getSession();
if(!myForm.getLogin().isEmpty() &&
!myForm.getPass().isEmpty()){
return mapping.findForward("success");
}else
return mapping.findForward("failure");
}
}
/////////////////////
//le code de classe LoginForm
package view;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import java.sql.*;
import javax.servlet.http.HttpServletRequest;

public class LoginForm extends ActionForm{
private String login=null;
private String pass=null;

public String getLogin() {
return login;
}

public void setLogin(String login) {
this.login = login;
}

public String getPass() {
return pass;
}

public void setPass(String pass) {
this.pass = pass;
}

public LoginForm() {
super();
}
// je vais tester juste pour mot de passe
public ActionErrors validate(ActionMapping mapping,HttpServletRequest req){
ActionErrors errors=new ActionErrors();
if(this.pass==null){
errors.add("pass",new ActionMessage("erreur.login"));

}
return errors;
}

}


et voici le code de struts-config.xml

<form-beans>
<form-bean
name="f1"
type="view.LoginForm" />
</form-beans>

<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action
path="/Welcome"
forward="/pages/Welcome.jsp"/>
<action
path="/login"
type="controlor.LoginAction"
name="f1"
scope="request"
validate="true"
input="/pages/login.jsp" >

<forward name="success" path="/pages/success.jsp" />
<forward name="failure" path="/pages/failure.jsp" />
</action>
</action-mappings>
//
<message-resources parameter="MessageResources" />
et dans le fichier MessageResources.properties je mets erreur.login=erreur de remplissage . ce fichier est met dans src/
et merci d'avance
A voir également:

2 réponses

missihafid Messages postés 59 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 5 avril 2014
2 avril 2014 à 20:14
S'il veut plait J'attends des solutions, des remarques ..
0
missihafid Messages postés 59 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 5 avril 2014
5 avril 2014 à 16:44
le problème était dans cette condition << if(this.pass==null) >> au lieu de mettre ça j'ai met if(!this.pass.isEmpty()) et ça marche bien.
0
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
5 avril 2014 à 18:48
Bonjour,

Je te conseilles de malgré tout conserver ton test avec null, ça t'éviterais un éventuel NullPointerException au cas où this.pass serait quand même null.

if (pass!=null && !pass.isEmpty())
0
missihafid Messages postés 59 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 5 avril 2014
5 avril 2014 à 19:17
ah bon, merci bien (y)
0