基本用法不说了,网上例子很多,这里主要介绍下比较特殊情况下使用的方法。
<强> 1。分组强>
有的时候,我们对一个实体类需要有多中验证方式,在不同的情况下使用不同验证方式,比如说对于一个实体类来的id来说,保存的时候是不需要的,对于更新时是必须的,可以如下配置:
公开课UserModel { @NotNull(消息=" {id。空}”、组={第一。类}) 私人int id; @NotNull(消息="{用户名。空}”、组={第一。类,第二个。类}) 私人字符串的用户名; @NotNull(消息="{内容。空}”、组={第一。类,第二个。类}) 私人字符串内容; 公共int getId () { 返回id; } 公共空间setId (int id) { 这一点。id=id; } 公共字符串getUsername () { 返回用户名; } 公共空间setUsername(字符串的用户名){ 这一点。用户名=用户名; } 公共字符串getContent () { 返回内容; } 公共空间setContent(字符串内容){ 这一点。内容=内容; } } 公共接口第{ } 第二个{公共接口 } >之前通过团体对验证进行分组
在控制器中的代码如下:
@RequestMapping (value=" https://www.yisu.com/save.action ",方法=RequestMethod.POST) 公共字符串保存(@Validated({第二。类})UserModel UserModel BindingResult结果){ 如果(result.hasErrors ()) { 返回“验证/错误”; } 返回“重定向:/成功”; } @RequestMapping (value=" https://www.yisu.com/update.action ",方法=RequestMethod.POST) 公共更新(@Validated({第一个字符串。类,第二个。类})UserModel用户,BindingResult结果){ 如果(result.hasErrors ()) { 返回“验证/错误”; } 返回“重定向:/成功”; } >之前<强> 2。组序列
强>默认情况下,不同组别的约束验证是无序的,然而在某些情况下,约束验证的顺序却很重要,如下面两个例子:(1)第二个组中的约束验证依赖于一个稳定状态来运行,而这个稳定状态是由第一个组来进行验证的。(2)某个组的验证比较耗时,CPU和内存的使用率相对比较大,最优的选择是将其放在最后进行验证,因此,在进行组验证的时候尚需提供一种有序的验证方式,这就提出了组序列的概念。
一个组可以定义为其他组的序列,使用它进行验证的时候必须符合该序列规定的顺序。在使用组序列验证的时候,如果序列前边的组验证失败,则后面的组将不再给予验证。
下例中声明了组GroupA.class, GroupB。类和组。类,其中违约,GroupA GroupB均为集团的序列。
公共接口GroupA { } 公共接口GroupB { } @GroupSequence({违约。类,GroupA。类,GroupB。类}) 公共接口组{ } 公开课用户{ @NotEmpty(消息=" firstname可能是空的”) 私人字符串firstname; @NotEmpty(消息=癿iddlename可能是空的”,组=Default.class) 私人字符串middlename; @NotEmpty(消息=發astname可能是空的”,组=GroupA.class) 私人字符串姓; @NotEmpty(消息=肮铱赡苁强盏摹?组=GroupB.class) 私人的字符串; } (java)视图在普通副本代码上查看代码片派生到我的代码片 @RequestMapping (value=" https://www.yisu.com/update.action ",方法=RequestMethod.POST) 公共字符串寄存器(@Validated (Group.class)用户用户,BindingResult结果){ 如果(result.hasErrors ()) { 返回“验证/错误”; } 返回“重定向:/成功”; } >之前<强> 3。验证多个对象强>
当我们在一个功能处理方法上需要验证多个模型对象时,需要通过如下形式来获取验证结果:
@RequestMapping(“/验证/多”) 公共字符串多(@Valid @ModelAttribute (“a”), BindingResult aErrors, @Valid @ModelAttribute (b) b b, BindingResult bErrors) { 如果(aErrors.hasErrors()){//如果一模型对象验证失败 返回“验证/错误”; } 如果(bErrors.hasErrors()){//如果一模型对象验证失败 返回“验证/错误”; } 返回“重定向:/成功”; }详解SpringMVC验证框架验证特殊用法