私はthymeleafでスプリングブートプロジェクトに取り組んでいます。ファイルを作成し、その上にいくつかの行を追加して、ユーザーがダウンロードできるように送信する必要があります。
@PostMapping("/filegenerator")
public String createFile(@ModelAttribute("page") Page page, Model model) {
List<String> lines = new ArrayList<String>();
//Some code ..........
lines.forEach(l->{
System.out.println(l);
});
//Here I need to create a file with the List of lines
//And also put some code to download it
return "filegenerator";
}
@Kamil Janowski
これが今の様子です
@PostMapping("/filegenerator")
public String createFile(@ModelAttribute("page") Page page, Model model,HttpServletResponse response) throws IOException{
List<String> lines = new ArrayList<String>();
if(page.getTables().get(0).getName()!="") {
List<String> output = so.createTable(page.getTables());
output.forEach(line -> lines.add(line));
}
if(page.getInserttables().get(0).getName()!="") {
List<String> output = so.insert(page.getInserttables());
output.forEach(line -> lines.add(line));
}
if(page.getUpdatetables().get(0).getName()!="") {
List<String> output = so.update(page.getUpdatetables());
output.forEach(line -> lines.add(line));
}
lines.forEach(l->{
System.out.println(l);
});
InputStream is = new ByteArrayInputStream(lines.stream().collect(Collectors.joining("\n")).getBytes());
IOUtils.copy(is, response.getOutputStream());
response.setContentType("application/sql");
response.setHeader("Content-Disposition", "attachment; filename=\"myquery.sql\"");
response.flushBuffer();
model.addAttribute("page", getPage());
return "filegenerator";
}