Java 其他方法调用带有@Validated参数的方法时,BindingResult怎么传?

问题描述

我有一个新增接口A,一个修改接口B,一个批量接口C,都在一个Controller中,根据C接口对象的id是否为空判断调用接口A还是接口B,我现在想要在调用接口A和接口B的时候能够进行参数校验,请问该怎么更改代码?

相关代码

@RestController
@RequiredArgsConstructor
public class ClassA {

    private final ServiceA serviceA;


    @PostMapping
    @ApiOperation("新增方法")
    public Result<String> create(@ApiParam("新增相关数据") @RequestBody @Validated({AddGroup.class}) MyDTO myDTO, BindingResult bindingResult) {
        Result<String> result = new Result<>();
        serviceA.create(myDTO);
        return result.success();
    }


    @PostMapping("/batch")
    @ApiOperation("批量修改")
    public Result<String> batch(@ApiParam("批量相关数据") @RequestBody @Validated ValidListBO<MyDTO> myDTOList, BindingResult bindingResult) {

        Result<String> result = new Result<>();
        for(MyDTO myDTO:myDTOList){
            if(myDTO.getPkId()==null){
                //如何调用新增方法且进行参数校验?
            }else{
                //如何调用更新方法且进行参数校验?
            }
        }
        return result.success();
    }



    @PutMapping
    @ApiOperation("更新方法")
    public Result<String> update(@ApiParam("更新数据") @RequestBody @Validated({EditGroup.class}) MyDTO myDTO, BindingResult bindingResult) {
        Result<String> result = new Result<>();
        serviceA.update(myDTO);
        return result.success();
    }
}

你期待的结果是什么?

能够通过batch调用新增,更新方法且进行参数校验,通过BindingResult进行错误提示

阅读 7.2k
1 个回答

转发请求,直接调用方法可不走springmvc那一套逻辑的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题