我希望我的@RestController
返回到我的Web服务器的绝对URL路径。但是路径不应硬编码,而应从运行Spring应用程序的应用程序服务器派生。
@RestController
public class FileService {
@GetMapping("/list")
public String getFiles(String key) {
String filepath = manager.getFile(key);
//TODO how to return the file with absolute path to webserver?
}
}
此外,如果用户通过http请求文件,则服务器应以http响应。同样,如果请求https,则应在绝对URL之前添加https前缀。
问题:如何动态获取控制器内部的绝对路径?
答案 0 :(得分:2)
您可以从HttpServletRequest
中提取它:
@GetMapping("/list")
public String getFiles(@RequestParam("key") String key, HttpServletRequest req) {
String filepath = manager.getFile(key);
String url = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + req.getContextPath();
}
答案 1 :(得分:0)
使用configure do
config.type_specs = true
end
required(:my_field, Types::Params::Integer).filled(gt?: 0)
中的方法,您可以将其传递给控制器方法来获取:
HttpServletRequest