我有问题。
我不知道如何在返回类型为datenum
的方法中返回视图。
我想用我的控制器下载一个文件。
如果上传文件,下载工作正常。
如果没有上传文件,它就不应该做任何事情(返回实际视图)。
现在我不知道怎么做,因为我猜不可能返回一个视图(因为我需要返回类型字符串)。
你有什么想法吗?
ResponseEntity
答案 0 :(得分:2)
您好我的项目曾遇到类似的问题,即我必须根据某些逻辑对不同的返回类型视图与字符串进行比较。
首先,当您将响应实体作为返回类型时,绝对不可能返回模型和视图。
我使用泛型返回类型
解决了这个问题public <T> T fileDownload (@Valid DownloadForm form, BindingResult result) throws IOException{
//your code
//here you can return response entity or
//modelAndView based on your logic
}
答案 1 :(得分:1)
我发现这适用于Spring Boot 2和JSP视图:
@GetMapping(value = "/view/theobject/{id}")
public Object getDomainObject(ModelAndView mav, @PathVariable Long id) {
Optional<DomainObject> theObject = svc.getDomainObject(id);
if (theObject.isPresent()) {
mav.setViewName("viewdomainobject");
mav.addObject("theObject", theObject.get());
return mav;
}
return ResponseEntity.notFound().build();
}
不需要令人讨厌的<T> T
通用返回类型,也无需转换返回的对象。