新进入一家做医疗软件的企业,在开发医疗软件的过程中,项目组要求使用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文件的配置
具体的实现代码详情,请参见附件。由于本人第一次发帖,水平有限,如果有写的不好的地方请大家多多包涵。最后,再次感谢matychen的帮助。