我有这种结构,由Spring Boot生成
所以我想使用sevletContext获取gastos.xlsx文件的输入流。
@Autowired
private ServletContext context;
@GetMapping("/grafico")
public ResponseEntity<String> exportExcelGrafico(HttpServletResponse response){
try{
//this path returns null. What is the real path to put here?
InputStream input = context.getResourceAsStream("src/main/resources/templates/gastos.xlsx");
//returns null
input = context.getResourceAsStream("/resources/templates/gastos.xlsx");
// Returns null
input = context.getResourceAsStream("/templates/gastos.xlsx");
}
catch(){
}
正确的道路是什么?
我没有在application.properties
答案 0 :(得分:1)
Maven或Gradle项目的src/main/resources
文件夹中的内容最终出现在jar中,而不是Web资源中。因此,应该使用类加载器而不是servlet上下文来加载它:
MyClass.class.getResourceAsStream("/templates/gastos.xlsx")
不确定为什么将文件放在模板下,因为...这不是模板。