今天做了一个validation验证的小例子,我用弹出消息框是可以了,也就是说当出现错误,就弹出消息框,可是我现在不想用消息框提示出错信息,我想在网页上显示,就是用<html:errors property="pass"/>标签显示出错信息,可是为什么不显示呢"??怎么才能让它显示出来呢?<html:form action="/user" onsubmit="return validateUserForm(this)">
pass : <html:text property="pass"/><html:errors property="pass"/><br/>
name : <html:text property="name"/><html:errors property="name"/><br/>
<html:submit/><html:cancel/>
<html:javascript formName="userForm"/>
</html:form>
pass : <html:text property="pass"/><html:errors property="pass"/><br/>
name : <html:text property="name"/><html:errors property="name"/><br/>
<html:submit/><html:cancel/>
<html:javascript formName="userForm"/>
</html:form>
//感觉action还是用.do的比较好 ,onsubmit 这句去掉吧,验证不需要这个
public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) { ActionErrors errors = new ActionErrors(); String userName =(String) getValue("userName"); String password = (String) getValue("password"); if(Validate.isNull(userName)){ errors.add("userName",new ActionMessage("ZHS.userName.required")); } if(Validate.isNull(password)) errors.add("password",new ActionMessage("ZHS.password.required")); return errors; }
ActionError以不赞成使用,所以用ActionMessage。
当这一层验证不成功的时候,会转发到配置文件中指定的input文件。
注意:
errors.add("userName",new ActionMessage("ZHS.userName.required")) 要理解它,请看下面的JSP代码:
<html:errors bundle="ZHS" property="userName"/>
public class Validate {
public static boolean isNull(String para){
if(para == null || para.trim().equals(""))
return true;
else
return false;
}
}