当前位置: 首页 > news >正文

宁波网站制作相信荣胜网络手机网站打开手机app

宁波网站制作相信荣胜网络,手机网站打开手机app,四川住建厅信息查询系统,奖状制作appSpring MVC使用InitBinder验证#xff1a; 使用InitBinder做验证的情况一般会在此Controller中提交的数据需要有一些是业务性质的#xff0c;也即比较复杂的验证情况下才会使用。大部份简单的表单验证#xff0c;使用annotation验证即可以解决。 Annotation验证使用方法可参…Spring MVC使用InitBinder验证 使用InitBinder做验证的情况一般会在此Controller中提交的数据需要有一些是业务性质的也即比较复杂的验证情况下才会使用。大部份简单的表单验证使用annotation验证即可以解决。 Annotation验证使用方法可参见http://www.cnblogs.com/HD/p/4123146.html 这里需要注意的一点InitBinder和Annotation两种验证只能二选一如果使用了InitBinder就不能使用Annotation验证。   前面的web.xml和spring.xml的配置就不再重复可参见上面链接中的配置。一模一样。 直接上代码   1、User5 model实体类 package com.my.controller.bean;import java.util.Date;public class User5 {private long id;private String name;private String password;private Date createTime;private int age;public long getId() {return id;}public void setId(long id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime createTime;}public int getAge() {return age;}public void setAge(int age) {this.age age;}}   2、新增一个Validator: package com.my.controller.validator;import org.springframework.stereotype.Component; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator;import com.my.controller.bean.User5;Component public class TestValidator implements Validator {Overridepublic boolean supports(Class? paramClass) {return User5.class.equals(paramClass);}Overridepublic void validate(Object obj, Errors errors) {User5 user (User5) obj;ValidationUtils.rejectIfEmptyOrWhitespace(errors, name, valid.name, null, );if(user.getAge() 18) {errors.rejectValue(age, valid.ageMin, new Object[]{age ,18}, 年龄不能小于{1}岁);}}} 这里需要加入Component注入DI   3、Controller package com.my.controller;import java.util.LinkedHashMap; import java.util.List; import java.util.Map;import javax.validation.Valid;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.validation.Validator; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView;import com.my.controller.bean.User5;Controller RequestMapping(valuebinder) public class TestInitBinderController {AutowiredQualifier(valuetestValidator)private Validator validator;InitBinderprivate void initBinder(WebDataBinder binder) {binder.setValidator(validator);}RequestMapping(methodRequestMethod.GET)public String index() {return /TestInitBinder/index;}RequestMapping(valueadd, methodRequestMethod.POST)public ModelAndView add(ModelAttribute Valid User5 user, BindingResult result) {ModelAndView view new ModelAndView(TestInitBinder/index);view.addObject(user, user);if(result.hasErrors()) {ListFieldError errs result.getFieldErrors();MapString, String mapErrors new LinkedHashMapString, String();for(FieldError err : errs) {System.out.println(ObjectName: err.getObjectName() \tFieldName: err.getField() \tFieldValue: err.getRejectedValue() \tMessage: err.getDefaultMessage());mapErrors.put(err.getField(), err.getDefaultMessage());view.addObject(errors, mapErrors);}return view;}return view;}} 把Validator注入到Controller中。 事实上使用InitBinder在add controller中的err.getDefaultMessage()方法是取不到对应正确的message的。可以看最后的输入打印结果。   4、View % page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8% % taglib urihttp://java.sun.com/jsp/jstl/core prefixc % % taglib urihttp://java.sun.com/jsp/jstl/fmt prefixfmt% % taglib urihttp://java.sun.com/jsp/jstl/functions prefixfn % % taglib prefixst urihttp://www.springframework.org/tags % % taglib prefixform urihttp://www.springframework.org/tags/form% !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html head meta http-equivContent-Type contenttext/html; charsetUTF-8 titleInit binder/title /head bodyform:form action/TestSpringMvc1/binder/add methodpost modelAttributeuser5User name:input typetext idname namename value${user.name} /br/Password:input typetext idpassword namepassword value${user.password} /br/Age:input typetext idage nameage value${user.age} /br/input typesubmit valueAdd/hr/Error:br/form:errors path*/form:errors/form:form /body /html 注意这里只能使用form:errors /来取得错误信息且这个form:errors/一定要在form:form/当中。   5、结果测试 点击Add button:   打印输出 可以看到这里取不到错误的正确信息     事实上在一个非常复杂表单页面里头所提交的数据验证有一定的业务逻辑性时InitBinder应该都不多用因为很多时候我们可以使用一个Map把errors插入进去在页面读取即可。比如 MapString, String errors; errors.add(name, user name can NOT be empty!); : : 页面中只需要使用 span stylecolor:red;${errors.name}span 即可。
http://www.pierceye.com/news/162983/

相关文章:

  • 网站亚马逊商城
  • h5企业模板网站模板江苏专业网站建设公司电话
  • 手机网站建设怎么样企业官网建设的重要性
  • 笑话小网站模板html网站制作标准
  • 大连网站建设哪家专业图片识别搜索引擎
  • 营销网站制作企业邓州市建设局网站
  • 如何从客户网站开发客户请解释网站开发的主要流程.
  • 做网站的价格 外贸最好科技广州网站建设
  • 烟台开发区网站做网站诊断步骤
  • 成都网站建设哪家技术好关于做网站的搞笑段子
  • 网站的设计制作流程计算机网站开发要考什么证
  • 个人域名 公司网站百度推广和网站建设
  • 哪里有做网站服务抖音开放平台是什么
  • 公司网站上传不了图片建设网站条件
  • 精美公司网站源码婚礼策划网站设计
  • 线上设计师网站网络维护是什么意思
  • 培训网站建设阿里云如何建设网站
  • 手机网站列表模板做一钓鱼网站吗
  • 太原网站建设方案策划请问有重庆有做网站吗
  • 网站备案购买语音网站怎么做
  • ftp上传文件到网站深圳成品网站超市
  • 网站开发时app打开很慢建设网站还要云服务器吗
  • 网站设计方案应该怎么做网站自适应开发
  • 徐州手机网站设计青龙县建设局网站
  • 罗湖网站建设费用帮忙做文档的网站
  • 如何在720云网站做全景视频域名注册网站查询工具
  • 网站定制开发流程和功能wordpress怎么看访问
  • 浙江省互联网建设网站python开发手机网站开发
  • 做网站需要多少钱一年动漫制作技术是学什么
  • 刘洋网站建设 够完美保卫处网站建设