使用代码实现 验证功能 (也就是重写ActionSupport中的validate()方法) 在validate方法中进行编写我们需要的验证功能 这里需要提几点的就是:
1.当我们需要对action中的某一个指定的方法使用validate()方法验证时我们需要自定义一个validate
2.当我们使用自定义的validate方法时,最好将重写的ActionSupport的validate方法去掉 (这是为了避免
引起冲突,因为如果action类中存在重写的validate()方法 程序会自动调用我们自定义的validate方法 之
后再调用它 这样就验证了多次,非常不利于程序的效率。而且容易出现冲突)
3.在创建自定义的validate方法时需要注意该方法的 方法名! 该方法名由 validate+对应的表单提交的
action中的 执行方法名称(首字母大写)
validateXXX或者validate方法在执行execute()方法之前执行,如果不能通过验证会返回struts.xml中相应action中<result name="input">xxxxxxx</result>的页面。
在validate函数中可以是指错误信息:
public void validateLogin() { //用户名不能为空 System.out.println("validatelogin!"); if("".equals(s.getUsername().trim())){ this.addFieldError("usernameError", "用户名不能为空"); } if("".equals(s.getPassword().trim())){ this.addFieldError("passwordError", "密码不能为空"); }else if(s.getPassword().length()<6){ this.addFieldError("passwordError", "密码长度不少于6位"); } }
在返回的页面中可以显示:
<div> <s:fielderror/> </div>