准备工作都做好了那就开始了:
(1).在struts-config.xml内做一下配置:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
但要注意<plug-in> </plug-in>的位置在<message-resources/>之后要不就报错了
validator-rules.xml是struts自带的xml文件,而validator.xml是自己建立的xml文件
建立xml文件步骤:WEB-INF->右键New->XML(basic Templates)->起一个名next->第一个Create xml file from aDTD file->next->Create xml catalog entry->选择第二个,下一步就OK了.
(2).在validator.xml内添加
<form-validation>
</form-validation>
loginForm为建立的Form对象userName为属性名,MyNull为验证规范名在validator-rulers.xml内定义
(3).在validator-rulers.xml最后添加
classname="com.accp.t04.struts.bean.JudgeNull"为建立判断逻辑处理的java类
method="getJudgeNull"为方法名
methodParams="java.lang.Object,
为固定参数
msg="errors.myjudgenull" 需要在property文件中设置的
为错误标签属性名
(4).建立java类及方法:
package com.sun.demo.valid;
import org.apache.commons.validator.ValidatorUtil;
public class JudgeNull {
public boolean getJudgeNull(java.lang.Object obj,
org.apache.commons.validator.ValidatorAction validatorAction,
org.apache.commons.validator.Field field,
org.apache.struts.action.ActionMessages actionMessage,
org.apache.commons.validator.Validator validator,
javax.servlet.http.HttpServletRequest request) {
// com.sun.demo.form.RegistForm loginForm = (RegistForm) obj;
String userName = ValidatorUtil.getValueAsString(obj, field.getProperty());
System.out.println("liuhu remind: userName = " +userName);
if ("".equals(userName)|| null == userName) {
actionMessage.add(field.getKey(), new ActionError("errors.myjudgenull"));
//errors.add( field.getKey(), Resources.getActionError(request, va, field));
return true;
}
return false;
}
// public static boolean validateTwoFields( Object bean,
// ValidatorAction va, Field field, ActionErrors errors, HttpServletRequest request) {
// String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
// String sProperty2 = field.getVarValue(secondProperty);
// String value2 = ValidatorUtil.getValueAsString(bean, sProperty2);
//
//
// if (!GenericValidator.isBlankOrNull(value)) {
// try {
// if (!value.equals(value2)) {
// errors.add( field.getKey(), Resources.getActionError(request, va, field));
// return false;
// }
// } catch (Exception e) {
// errors.add( field.getKey(), Resources.getActionError(request, va, field));
// return false;
// }
// }
// return true;
// }
//}
}
现在基本就完事了,在struts自带的property文件中设置一下错误信息就Ok了
errors.myjudgenull=userName cann't null.
现在到页面上看看
现在一切都OK了,到浏览器上看看吧....