spring3.1.1 mvc jsr303 验证 信息国际化 问题

javaroom 发布于 2012/06/17 12:32
阅读 2K+
收藏 0

因为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之中,在页面相应的位置打印出来?

 

加载中
0
魔力猫
魔力猫
jsr303主要实现的是格式验证。比如是否非空、电话邮件地址是否正确等等。业务验证还是需要手写的。
0
j
javaroom
我是手写了判断逻辑,但是我现在想问的是:如何将我的信息:1、国际化;2、将信息放到result中通过 框架自动写到相应位置
0
y
yhuaming

其中是传入控制器的参数:ModelMap model

model.addAttribute("errors", "账号密码不匹配");

0
阿伟-W
阿伟-W
model设置attribue是能解决问题,不过不是很清楚spring是不是自己的处理方式
返回顶部
顶部