addFieldError sur Struts2 affiche pas d'erreur sur le champs
Salut, je suis très nouveau à struts2. de quelques livres et de sites web, je suis cet exemple. Dans la classe d'action il utiliser la méthode de validation pour vérifier la logique. La méthode est appelée bcoz de l'impression des déclarations. Mais l'erreur n'est pas affiché à proximité des champs. Jst m'aider
Index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Home</title>
</head>
<body>
<s:form action="LoginAction ">
<s:textfield name="username" label="Username" />
<s:textfield name="password" label="Password" />
<s:submit value="Login"></s:submit>
</s:form>
</body>
</html>
Struts.xml
<package name="default" extends="struts-default">
<action name="LoginAction" class="org.shammu.struts2.actions.LoginAction">
<result name="success">/welcome.jsp</result>
<result name="input">/index.jsp</result>
</action>
<action name="emptypassthrough">
<result>index.jsp</result>
</action>
</package>
LoginAction.java
package org.shammu.struts2.actions;
import org.shammu.struts2.beans.LoginBean;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class LoginAction extends ActionSupport{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
LoginBean login = new LoginBean();
login.setPassword(password);
login.setUsername(username);
if (getUsername().equals("abcd")) {
return "success";
} else {
return "input";
}
}
@Override
public void validate() {
if (username.length() < 3) {
System.out.print("user err ok");
this.addFieldError(username, "Username Empty Pls provide");
}
if (password.length() < 3) {
System.out.print("Pass err ok");
this.addFieldError(password, "Password Empoty provride one pkls");
}
}
}
J'm pas tenu compte de l'exécution de la méthode. Je veux jst le msg d'erreur imprimée à proximité de champs... Aider
- Vous n'êtes pas d'utiliser correctement
addFieldError
méthode. Le premier paramètre est un nom de champ. Dans votre cas, il devrait êtreaddFieldError("username", "Username Empty Pls provide");
. - Tnx beaucoup Aleksandr.. Dans addFieldError, chaque fois que j'type de nom d'utilisateur, eclips déroulante le nom de l'utilisateur qui est en fait un champ déclaré dans la classe. Il a obtenu misundrstnad... Tnx agan. Je n'ai pas knw comment voter, Si je sais, ll donner u 1000 votes, bcz u aider à réduire mo beaucoup de tm..\
- comment faire de commentaire ur comme réponse..?
- Vous pouvez accepter/upvote ma réponse maintenant.
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas correctement à l'aide de
addFieldError
méthode. Le premier paramètre de cette méthode est un nom de domaine. Dans votre cas, il devrait être"username"
.Pour afficher
fielderror
vous devez ajouter<s:fielderror />
dans votre jsp.Il Rendre champ erreurs si elles existent. Mise en page spécifique dépend du thème particulier. Le domaine des chaînes d'erreur sera échappé html par défaut.
<s:fielderror>
balises pour défaut de signalement d'erreur dansxhtml
thème.