最近因项目不得不研究下spring表单验证,通过搜索资料,最后还是决定使用spring-modules-validation.jar
以下是相关的代码
实体bean
- public class Configuration{
- @NotNull
- @Length(min=3,max=10)
- private String name;//配置名称
- ...............
- }
controller
- @Autowired
- private Validator validator;
- @RequestMapping(CREATE)
- public String save (@ModelAttribute("configuration") Configuration object,BindingResult result, HttpServletRequest request,ModelMap model){
- //表单验证
- validator.validate(object, result);
- List<ObjectError> error = result.getAllErrors();
- log.debug("result>>"+result);
- if (result.hasErrors()) {
- model.addAttribute("objectErrorList",result.getAllErrors());
- return FORM;
- }
配置
- <bean id="configurationLoader" class="org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader"/>
- <bean id="validator" class="org.springmodules.validation.bean.BeanValidator" p:configurationLoader-ref="configurationLoader"/>
- <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" p:basename="classpath:errors">
- <property name="defaultEncoding" value="utf-8" />
- </bean>
- 后一个是设置一个errors.properties
jsp页面
- <c:forEach items="${objectErrorList}" var="error" varStatus="idx">
- ${idx.index+1 }:<spring:message code="${error.code}"/><br/>
- </c:forEach>
其实这里还有另外一种写法,就是不要使用errors.properties
而直接把异常的提示信息写在实体bean中
eg:
- @Length(min=3,max=10,message="xxxxx")
在这里的xxxxx如果是中文的话,记得需要先转码再复制填充进去
然后再jsp页面是需要这样调用
- <c:forEach items="${objectErrorList}" var="error" varStatus="idx">
- ${error.defaultMessage}<br/>
- </c:forEach>
另外
1.在实体bean中还可以设置其他的验证规则,这个可以研究下spring-modules-validation.jar中的org.springmodules.validation.bean.conf.loader.annotation.handler包下面的类,如@Email验证电子邮箱的输入
2.properties文件的中文问题可以这样解决,使用jdk中的native2ascii.exe工具
native2ascii.exe -encoding iso8859_1 errors.properties errors2.properties(其中的iso编码这个需要根据你系统的需要进行设置)
参考网址:
1.http://www.enavigo.com/2010/08/13/spring-bean-validation-error-code-list-for-custom-error-message/
2.http://wheelersoftware.com/articles/spring-bean-validation-framework-1.html
以上是我的一些心得,估计也不是最好的方法,如果有更好,还恳请高手指导一下
相关推荐
Android 数据绑定验证工具,快速帮你验证表单数据绑定状况
antd+vue实现动态验证循环属性表单的思路 希望实现查询表单的某些属性可以循环验证必填项: 需求: 1.名称,对比项,备注必填,默认为一行,可增加多行 2.根据名称,动态请求对比项列表,名称变化时,清空该行...
JavaFX表单验证(目前支持,TextField和ComboBox两种表单)
在使用vue做项目的过程中,做表单验证通常需要事件绑定、数据双向绑定等才能完成一个验证操作,多个验证往往会有重复代码,所以就想写一个表单验证插件。
b、把每一个需要验证的input对象,进行事件的绑定 c、规则与用户输入内容进行匹配,正则表达式 正则表达式规则.test(要验证的内容); d、给出明确的提示信息span标签中以及边框的颜色 2、用户点击提交按钮的时候...
使用jQuery制作一个很有创意的表单验证程序 这是一个运用jQuery和PHP共同完成的一个特效,很有创意的表单验证,拖动一个图标到指定的位置实现验证,创意可能来自Iphone的滑动解锁。测试时请先安装好PHP环境,不需要...
Data Binding Validator by Ilhasoft The Data Binding Validator makes it easy and quick to validate fields in forms using data binding framework. Download Step 1: Add it in your root build.gradle at ...
主要介绍了vue动态绑定组件子父组件多表单验证功能的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
这不是在吹嘘,而是在解决这个表单验证的问题上投入了太多的时间与心血,我想其足够能满足你的各种验证需求,正常表单和无包裹的表单均可自动分组绑定、勿须在DOM上加额外属性、规则可动态增删改、极少的API接口、...
在实际使用中经常会遇到需要在Form表单中使用table表格进行表单提交,同时又需要对table的字段进行校验,效果如图所示: 这个校验中,最关键的问题在于如何给el-form-item 动态绑定prop。 :prop=”‘tableData.’ +...
//基于layer框架之上,验证表单时引用。弹出提示错误 function qxMsg(msgStr) { layer.open({ type: 1, title: '提示消息', offset: '10%;', content: '<div xss=removed>'+msgStr+'</div>', btn: '关闭', ...
采用 image 进行 ASP.Net 数据表单验证的错误信息显示程序例子。
首先创建一个新的javascript对象,该对象将与表单绑定在一起。 var User = function() { var self = this; self.id = 0; self.username = ''; self.firstname = ''; self.lastname = ''; self.email = ''; }...
本人自己开发的jquery表单验证控件! 使用方便,样式美观,完全开源。...btnsubmit:可选 指定一个绑定提交事件的控件ID,如一个普通按钮或一个超链接,表单中的submit依然有效 其它具体使用方法,请参阅demo文件!
本文实例为大家分享了jquery.validate表单验证的使用方法,供大家参考,具体... 2).js逻辑控制:在需要校验的表单元素上绑定事件,如点击、获取焦点、失去焦点等事件,并设置这些事件对应的执行函数; 3).css样式
1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家。 1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素 3.鼠标离开后的正确、错误提示及鼠标移入时的帮助提醒 对于...
本篇文章主要介绍了ElementUI之表单验证、数据绑定、路由跳转,非常具有实用价值,需要的朋友可以参考下
您的表单对象还需要一个id来处理表单绑定,以及一个submit (也是 id 选择器)来绑定点击事件。 如果所有都通过,则在验证结束时调用success回调,并具有解析fields的列表及其值和 jQuery 元素 HTML : < ...
需要进行表单数据验证,原先才用html5来完成验证,但是效果很差,也不够灵活,所以需要进行自定义的表单验证,网上的插件都太过庞大,项目并没有这么多的需求。 那让我们自己来写一个吧! 知识准备 vue的自定义指令 ...
囊括11种常见的格式验证形式,如果这些类型还不够,可以方便的传入自定义datype...例如你给页面上的各form绑定同样的class名称"demoform",只需在页面上写上一句 $(".demoform").Validform(),各表单便会独立检测。