Spring错误返回BindingResult
来源:互联网 发布:java中实现md5加密 编辑:程序博客网 时间:2024/06/01 10:05
最近做的一个项目使用了 Spring MVC3, 其中验证也是使用Spring的 validate 框架, 但不是全部。
我们只是使用了org.springframework.validation.Errors, org.springframework.validation.BindingResult 来将验证错误信息返回到JSP页面。因为Spring提供了<form:errors>标签来显示BindingResult对象里的错误信息, 并且这个验证框架还支持国际化, errorCode对应的语言文字放到工程的message资源文件就好了。
下面是一个简单的注册账户的例子:包括三个文件:JSP, AccountValidator和AccountValidator。
1. ###首先是JSP页面:addAccount,jsp的表单
<form:form
</form:form>
Note: 使用上面这些标签, 必须引入Spring 的 form标签库:<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
大家还看到我们使用了JSTL的fmt标签库(国际化), 这个也要引入<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>, 其实我们也完全可以用<form message>标签来做国际化的。这里我还想说一个东西:readonly这个属性根本起不到只读的作用, 完全可以被修改,但是使用disable属性后,这个表单元素就无法放到accountVo这个对象并提交了, 纠结!
2. ###这里是个不完整的验证类AccountValidator, 注意,我们没有实现Validator接口
public class AccountValidator {
}
Note: Errors这个接口有好几个rejectValue()函数, 它们是可以支持国际化的。 比如, 上面这个例子表示, 错误的字段(filed)是"email", errorCode是"validate.email.empty", 与资源文件对应, 第三个是defaultMessage。很多国际化当中会带有参数, rejectValue其中的一个重载函数就是rejectValue(String
3. ###最后是AccountController
@Controller//基于注解, 声明这是一个controller
@RequestMapping(value="/account") //表示总的路径
@SessionAttributes("account") //表示account对象将会存入session当中, //默认情况下model.addAttribute(account)将会把account对象放入request当中, 并且属性名为"account"
public class
@RequestMapping(value = "/add", method = RequestMethod.POST)
}//end of controller
Note: 这里需要特别注意几个问题:1.
4. ###进阶一下, 看看验证错误信息对象是怎么传递到页面的
这一切看起来都很完美, 但是有时候出于设计的原因, 我们不得不使用redirect, 对, 就是重定向! 就是这个东西让我对Spring MVC有了一点不好的印象, 特别是结合了sitemesh之后。这个先打住, 咱们还是说验证错误怎么传给重定向之后的JSP页面吧。
其实也简单, 咱们可以先把错误对象放入session当中, 然后在另一个Controller里把它取出来, 然后再返回到相应的JSP页面就行了!
对!但是,这里要注意了,
if(session.getAttribute("BindingResult.accountVo") != null){
}
首先, 验证错误对象 BindingResult 必须放入 org.springframework.ui.Model
第二,这个属性名是BindingResult.getClass().getName + "." + targetName,
<span class="errorMsg" id="email.errors">邮箱格式不正确!</span> //如果是英文浏览器, "邮箱格式不正确!"就会使英文版本的。
- Spring错误返回BindingResult
- Spring验证的错误返回------BindingResult
- BindingResult错误返回显示失败
- jsp 页面怎么得到spring BindingResult 里面的错误消息?
- jsp 页面怎么得到spring BindingResult 里面的错误消息
- jsp 页面怎么得到spring BindingResult 里面的错误消息
- bindingResult
- springmvc 返回xml时结果异常BindingResult
- spring mvc返回json错误
- spring mvc返回json格式错误
- 406错误spring mvc 返回json格式
- Spring mvc 3 返回json 406错误
- spring返回 json报406错误
- 关于BindingResult
- Valid Type Name, BindingResult bindingResult
- dojo接收spring返回json对象错误解决
- dojo接收spring返回json对象错误解决
- Spring MVC 返回json数据报406错误
- linux命令行解析函数介绍
- Mecanim Animator使用详解
- Linux netstat命令详解
- hibernate.hbm2ddl.auto(自动创建表结构)配置详解
- React Native 官方文档中文版
- Spring错误返回BindingResult
- IntelliJ IDEA 12 创建Web项目 详细版
- iOS和OS X中的bundle
- C++_虚析构函数
- 【Android】 Activity启动模式singleTask的数据传输 onNewIntent方法
- Android事件分发机制
- AndroidStudio快捷键设置
- PHP数组问题
- 程序内存分配