@Validated能设置成有提交才验证吗

lshfong 2021-07-19 16:12:36

我把视图和保存都放在Add方法中,但有一个问题就是显示视图时也会触发@Validated,如果不分离的情况下应该怎么处理呢

@RequestMapping("/Add")
    public String Add(@Validated User u, Model model, HttpServletRequest request) {
        if (request.getMethod().toLowerCase().equals("post")) {
            userService.save(u);
            return "redirect:/Admin/User/Index";
        } else {
            List<Role> role = roleService.list();
            model.addAttribute("role", role);
            return "admin/user_add_view";
        }

    }

 

...全文
703 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿豆响当当 2021-07-26
  • 打赏
  • 举报
回复

注解形式的Validated太滞重 不建议这么使用,可以封装为 函数,特有逻辑时调用

//校验方法
    public String validate(@Valid Object parame) {
        Set<ConstraintViolation<@Valid Object>> validateSet = Validation.buildDefaultValidatorFactory()
                .getValidator()
                .validate(parame, new Class[0]);
        if (!CollectionUtils.isEmpty(validateSet)) {
            String messages = validateSet.stream()
                    .map(ConstraintViolation::getMessage)
                    .reduce((m1, m2) -> m1)
                    .orElse("参数输入有误!");
            return messages;
        }
        return "";
    }

//调用方示例
if (StringUtils.isNotBlank(validate(dto))){
            return failed(validate(dto));
 }
=PNZ=BeijingL 2021-07-19
  • 打赏
  • 举报
回复

这么写违反单一职责

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧