Java 如何简单地检查请求正文是否为空或请求正文是否有空字段?
嗨,我有一个接受POST请求的控制器 请求正文可以是空的,也可以带有空字段的正文:即或{}Java 如何简单地检查请求正文是否为空或请求正文是否有空字段?,java,json,spring-boot,request,http-post,Java,Json,Spring Boot,Request,Http Post,嗨,我有一个接受POST请求的控制器 请求正文可以是空的,也可以带有空字段的正文:即或{} @RestController public class UserController { @Autowired private UserService UserService; @RequestMapping(value = "/tree", method = POST,consumes = MediaType.APPLICATION_JSON_VALUE) public
@RestController
public class UserController {
@Autowired
private UserService UserService;
@RequestMapping(value = "/tree", method = POST,consumes = MediaType.APPLICATION_JSON_VALUE)
public List<ResponseUser> controller(@RequestBody(required=false) UserDataRequest request) {
return UserService.send(request);
}
}
@RestController
公共类用户控制器{
@自动连线
私人用户服务;
@RequestMapping(value=“/tree”,method=POST,consumes=MediaType.APPLICATION\u JSON\u value)
公共列表控制器(@RequestBody(required=false)UserDataRequest){
返回UserService.send(请求);
}
}
我的服务定义如下:
@服务
公共类用户服务{
@自动连线
私有RestTemplate RestTemplate;
私人责任;
公共列表发送(UserDataRequest数据){
//空正文==null
如果(数据==null){
//返回ResponseUser类型的列表1
}
否则{
//检查字段是否存在或不存在
Optional id=Optional.ofNullable(data.getid());
Optional search=Optional.ofNullable(data.getsearch());
//如果有身份证
if(id.isPresent()){
//返回ResponseUser类型的列表2
}
//如果存在搜索
else if(search.isPresent()){
//返回ResponseUser类型的列表3
}
否则{
//返回ResponseUser类型的列表1
}
}
返回responseEntity.getBody();
}
}
我想知道如何不再重复同样的事情?有什么有效的方法吗?将验证注释添加到Pojo类中
public class UserDataRequest {
@NotNull
private String id;
@NotNull
private String search;
}
更新post方法以使用此验证
public List<ResponseUser> send(@Valid UserDataRequest data){}
公共列表发送(@Valid UserDataRequest data){}
它不能满足所有情况,请求可以为空或{}。。此外,id和search也可以为null。
public List<ResponseUser> send(@Valid UserDataRequest data){}