SpringMVC 使用JSR-303进行校验Bean Validation-----消息中使用EL表达式
2018-02-24 16:46
309 查看
假设我们需要显示如:用户名[NAME]长度必须在[MIN]到[MAX]之间,此处大家可以看到,我们不想把一些数据写死,如NAME、MIN、MAX;此时我们可以使用EL表达式。
错误消息:
其中我们可以使用{验证注解的属性}得到这些值;如{min}得到@Length中的min值;其他的也是类似的。
到此,我们还是无法得到出错的那个输入值,如name=zhangsan。此时就需要EL表达式的支持,首先确定引入EL jar包且版本正确。然后使用如:
使用如EL表达式:validatedValue得到输入的值,如zhangsan。当然我们还可以使用如validatedValue得到输入的值,如zhangsan。当然我们还可以使用如{min > 1 ? ‘大于1’ : ‘小于等于1’},及在EL表达式中也能拿到如@Length的min等数据。
另外我们还可以拿到一个java.util.Formatter类型的formatter变量进行格式化:
@Length(min = 5, max = 20, message = "{user.name.length.illegal}", groups = {First.class})
错误消息:
user.name.length.illegal=用户名长度必须在{min}到{max}之间
其中我们可以使用{验证注解的属性}得到这些值;如{min}得到@Length中的min值;其他的也是类似的。
到此,我们还是无法得到出错的那个输入值,如name=zhangsan。此时就需要EL表达式的支持,首先确定引入EL jar包且版本正确。然后使用如:
user.name.length.illegal=用户名[${validatedValue}]长度必须在5到20之间
使用如EL表达式:validatedValue得到输入的值,如zhangsan。当然我们还可以使用如validatedValue得到输入的值,如zhangsan。当然我们还可以使用如{min > 1 ? ‘大于1’ : ‘小于等于1’},及在EL表达式中也能拿到如@Length的min等数据。
另外我们还可以拿到一个java.util.Formatter类型的formatter变量进行格式化:
${formatter.format("%04d", min)}
实例
1.添加校验
@Data @NoArgsConstructor @AllArgsConstructor @Builder @GroupSequence({User.Adult.class, User.Other.class,User.class}) public class User { @NotNull(message="{user.id.null}") private String userName; //@Max(value=120,message="年龄最大不能查过120",groups = {Adult.class}) private int age; @Email(message="邮箱格式错误",groups = {Other.class}) private String email; @CannotHaveBlank(groups = {Adult.class}) private String sex; @Valid @ConvertGroup(from=Adult.class,to=Other.class) private String password; @Length(min = 8,max = 11,message = "{user.phoneNum.length}") private String phoneNum; //分组 public interface Adult{} public interface Other{} }
2.添加message信息
user.phoneNum.length=手机号码【${validatedValue}】长度必须在{min}到{max}之间
3.测试
相关文章推荐
- SpringMVC 使用 JSR-303 进行数据校验实例
- springmvc使用JSR-303进行表单验证不生效的问题
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验Bean Validation------自定义校验
- SpringMVC 使用JSR-303进行校验 @Valid
- @Validate SpringMVC 使用JSR-303进行校验
- springmvc 使用JSR-303进行数据校验
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验Bean Validation------分组校验
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验 @Valid
- SpringMVC 使用JSR-303进行校验
- SpringMVC 使用JSR-303进行校验 @Valid