因为spring3.1支持了jsr303规范,写验证更加容易了,但是也发现有的实现的不彻底,有的也要自己写,在开发中,我遇到了这样一个问题: 修改密码或者注册,比较输入的两个字段是否一样,这时纯靠注解就无法实现了(也许有相应的我没有发现,希望大家指教),我自己在程序中实现也行,但是却无法将相应的提示信息(1,国际化无法实现;2,不能在相应的位置显示,就是无法在<form:error>这个标签显示出来,请大家指点拍砖),代码如下:
if(!command.getMerchantEmail().equals(command.getMerchantReEmail())){ ObjectError error = new ObjectError("command",null,new Object[]{"merchantReEmail"},messageSource.getMessage("email.different", null, Locale.getDefault())); result.addError(error); } if(!command.getMerchantPassword().equals(command.getMerchantRePassword())){ ObjectError error = new ObjectError("merchantRePassword",messageSource.getMessage("password.different", null, Locale.getDefault())); result.addError(error); } if (result.hasErrors()) { model.addAttribute("countryMap", countryService.queryAll()); model.addAttribute("gender", Gender.values()); return "register"; }希望大家:
1、springmvc的国际化除了在页面用标签实现,在程序中如何实现? 2、使用jsr303如何将自己的验证结果信息放入BindingResult之中,在页面相应的位置打印出来?
jsr303主要实现的是格式验证。比如是否非空、电话邮件地址是否正确等等。业务验证还是需要手写的。######我是手写了判断逻辑,但是我现在想问的是:如何将我的信息:1、国际化;2、将信息放到result中通过 框架自动写到相应位置######其中是传入控制器的参数:ModelMap model model.addAttribute("errors", "账号密码不匹配");######model设置attribue是能解决问题,不过不是很清楚spring是不是自己的处理方式
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。