新进入一家做医疗软件的企业,在开发医疗软件的过程中,项目组要求使用Inline Form Validation Engine这个验证框架。
此验证框架的最新版本为V2.2,官方网站:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 。
下面所介绍的验证,是在官方版本V2.2下和matychen的帮助下完成的。在此,非常感谢matychen。
matychen博客:http://matychen.iteye.com/ 。
一、修改过的jquery.validationEngine-cn.js的内容(其他的文件都未做修改)
"ajaxUserCall": { //这是源文件的URL //"url": "ajaxValidateFieldUser", //这是修改后的URL "url": "validate.action", // you may want to pass extra data on the ajax call "extraData": "name=eric", "alertText": "* 该用户名已经存在", "alertTextLoad": "* 正在验证中,请稍等..." },
这里的URL指的是跳转的action
二、相应的action的处理
public class ValidationAction extends ActionSupport {
public void validate() {
ActionContext ac = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest) ac
.get(ServletActionContext.HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse) ac
.get(ServletActionContext.HTTP_RESPONSE);
String fieldId = request.getParameter("fieldId");
System.out.println(fieldId);
String fieldValue = request.getParameter("fieldValue");
PrintWriter pw=null;
try {
pw=response.getWriter();
if (fieldValue.equals("zhangbin")) {
pw.write(
"[\"" + fieldId + "\"," + true + "]");
} else
pw.write(
"[\"" + fieldId + "\"," + false + "]");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
pw.flush();
pw.close();
}
}
}
三、struts文件的配置
<struts> <package name="validate" extends="struts-default"> <action name="validate" class="com.zhangbin.action.ValidationAction" method="validate"> </action> </package> </struts>
具体的实现代码详情,请参见附件。由于本人第一次发帖,水平有限,如果有写的不好的地方请大家多多包涵。最后,再次感谢matychen的帮助。