日期:2014-05-20  浏览次数:20822 次

struts 里的validation验证的一个小小问题,,,,,,,,,,,,,,,,,,
今天做了一个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>




------解决方案--------------------
<html:javascript formName= "userForm "/> 去掉
------解决方案--------------------
把onsubmit= "return validateUserForm(this) " 也去掉
------解决方案--------------------
这个感觉用JavaScript好一点,出错了把某个标签里的text改掉
------解决方案--------------------
<html:form action= "/user " onsubmit= "return validateUserForm(this) ">
//感觉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;
}
}