ssm整合hibernate-validator

ssm整合hibernate-validator,第1张

有关hibernate-validator的语法请参考:hibernate-validator 校验规则详解

第一步:添加maven依赖
<dependency>
    <groupId>org.hibernate.validatorgroupId>
    <artifactId>hibernate-validatorartifactId>
    <version>6.2.3.Finalversion>
dependency>
第二步:在applicationContext.xml中添加配置
<mvc:annotation-driven validator="validator"/>
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
bean>
第三步:实体类中添加检验
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Province {
    /**
     * 编号
     */
    private Integer id;

    /**
     * 省名
     */
    @NotBlank(message = "省名不能为空")
    private String name;

    /**
     * 所属地区
     */
    @NotBlank(message = "大区不能为空")
    private String area;

    /**
     * 显示优先级
     */
    @Range(min=0,max=255,message="优先级不能为空,且值需要在[0,255]")
    private Integer priority;

    /**
     * 状态:1正常 0 删除
     */
    private Byte status;
}

第四步:Controller中使用
@Controller
@RequestMapping("/province")
public class ProvinceController {
    @Resource
    private ProvinceService provinceService;

    @PostMapping("/add")
    public String add(@Valid Province province, BindingResult result) {
        if(result.hasErrors()){
            //如果没有通过,跳转提示
            Map<String, String> map = getErrors(result);
            //TODO 将错误以特定(比如,JSON)的格式传递给用户
            return "";
        }else {
            province.setStatus((byte) 1);
            provinceService.add(province);
            //重定向到列表页面
            return "redirect:/province/list";
        }
    }

    private Map<String, String> getErrors(BindingResult result) {
        Map<String, String> map = new HashMap< >();
        List<FieldError> list = result.getFieldErrors();
        for (FieldError error : list) {
            map.put(error.getField(), error.getDefaultMessage());
        }
        return map;
    }

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/917342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存