欢迎来到天天文库
浏览记录
ID:37796516
大小:37.50 KB
页数:7页
时间:2019-05-31
《结合SpringMVC和Hibernate-validator,自动生成前台的js验证代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、结合SpringMVC和Hibernate-validator,自动生成前台的js验证代码在SpringMVC数据验证中我们已经学习了如何结合Hibernate-validator进行后台的数据合法性验证,但是通常来说后台验证只是第二道保险,为了更好的用户体验会现在前端进行js验证,验证通过之后数据才能提交到后台,那么我们不可避免的要在前端的页面中写对应的js验证代码。但是这样就需要进行一些很麻烦且重复的操作:1.首先要保证前端和后台的验证规则要相同,避免出现前端验证通过,提交后又出现验证失败的情况。2.其次要保
2、证前端和后台的验证规则要同步,即修改一边的验证规则后要修改另一边对应的验证规则。3.要保证错误提示信息的一致和相应的国际化问题。(其实这个问题在js验证代码中提示错误信息的地方,绑定国际化信息可以解决,只是比较啰嗦。)好吧~~~以上这些都不是主要原因,主要原因是我太懒了不想在每个页面中再一个一个写对应的js验证代码,那么如何才能让后台根据我们定义的模型验证规则自动生成前端的js验证代码呢?下面一步一步来:首先我想像springmvc的form标签一样3、tModel"method="post">,这样指定一下就可以生成对应的前端代码,简洁优雅,多爽!,那么我们就要先自定义taglib标签。1.添加一个类,这里就叫JsValidateTag,我是定义在com.demo.test包下面的。2.在WebContent/WEB-INF目录下面添加一个xml文件,我这里名称叫test.tld内容如下:复制代码4、mlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0">Test1.0test5、rt-name>http://www.mytest.org/tags/testjsValidatecom.demo.test.JsValidateTagemptyPathtopropertyfordatabinding6、e>modelAttributetruetrue复制代码上面的内容很简单,就是定义了一个叫jsValidate的标签,对应的类是com.demo.test.JsValidateTag就是我们之前新建的那个,然后有一个叫modelAttribute的参数。3.接下来在我们新建的类里面实现具体的处理逻辑,代码如下:复制代码packagecom.demo.t7、est;importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjavax.servlet.jsp.JspException;importorg.hibernate.validator.constraints.Emai8、l;importorg.hibernate.validator.constraints.NotEmpty;importorg.hibernate.validator.constraints.Range;importorg.springframework.web.servlet.tags.form.AbstractFormTag;importorg.springframew
3、tModel"method="post">,这样指定一下就可以生成对应的前端代码,简洁优雅,多爽!,那么我们就要先自定义taglib标签。1.添加一个类,这里就叫JsValidateTag,我是定义在com.demo.test包下面的。2.在WebContent/WEB-INF目录下面添加一个xml文件,我这里名称叫test.tld内容如下:复制代码4、mlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0">Test1.0test5、rt-name>http://www.mytest.org/tags/testjsValidatecom.demo.test.JsValidateTagemptyPathtopropertyfordatabinding6、e>modelAttributetruetrue复制代码上面的内容很简单,就是定义了一个叫jsValidate的标签,对应的类是com.demo.test.JsValidateTag就是我们之前新建的那个,然后有一个叫modelAttribute的参数。3.接下来在我们新建的类里面实现具体的处理逻辑,代码如下:复制代码packagecom.demo.t7、est;importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjavax.servlet.jsp.JspException;importorg.hibernate.validator.constraints.Emai8、l;importorg.hibernate.validator.constraints.NotEmpty;importorg.hibernate.validator.constraints.Range;importorg.springframework.web.servlet.tags.form.AbstractFormTag;importorg.springframew
4、mlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0">Test1.0test5、rt-name>http://www.mytest.org/tags/testjsValidatecom.demo.test.JsValidateTagemptyPathtopropertyfordatabinding6、e>modelAttributetruetrue复制代码上面的内容很简单,就是定义了一个叫jsValidate的标签,对应的类是com.demo.test.JsValidateTag就是我们之前新建的那个,然后有一个叫modelAttribute的参数。3.接下来在我们新建的类里面实现具体的处理逻辑,代码如下:复制代码packagecom.demo.t7、est;importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjavax.servlet.jsp.JspException;importorg.hibernate.validator.constraints.Emai8、l;importorg.hibernate.validator.constraints.NotEmpty;importorg.hibernate.validator.constraints.Range;importorg.springframework.web.servlet.tags.form.AbstractFormTag;importorg.springframew
5、rt-name>http://www.mytest.org/tags/testjsValidatecom.demo.test.JsValidateTagemptyPathtopropertyfordatabinding6、e>modelAttributetruetrue复制代码上面的内容很简单,就是定义了一个叫jsValidate的标签,对应的类是com.demo.test.JsValidateTag就是我们之前新建的那个,然后有一个叫modelAttribute的参数。3.接下来在我们新建的类里面实现具体的处理逻辑,代码如下:复制代码packagecom.demo.t
6、e>modelAttributetruetrue
7、est;importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjavax.servlet.jsp.JspException;importorg.hibernate.validator.constraints.Emai
8、l;importorg.hibernate.validator.constraints.NotEmpty;importorg.hibernate.validator.constraints.Range;importorg.springframework.web.servlet.tags.form.AbstractFormTag;importorg.springframew
此文档下载收益归作者所有