Inline Form Validation Engine+Struts2的AJAX验证
新进入一家做医疗软件的企业,在开发医疗软件的过程中,项目组要求使用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 + "]");} elsepw.write("["" + fieldId + ""," + false + "]");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{pw.flush();pw.close();}}}
?三、struts文件的配置
<struts><package name="validate" extends="struts-default"><action name="validate" method="validate"></action></package></struts>
?
具体的实现代码详情,请参见附件。由于本人第一次发帖,水平有限,如果有写的不好的地方请大家多多包涵。最后,再次感谢matychen的帮助。
?
?
?