Я новичок в Spring и хотел бы отобразить изображение с меткой <img>
. Изображение генерируется с помощью некоторых методов Java.
Метод может сгенерировать нужный мне график и поместить его в путь src/main/resources/static/*.svg
.
Я решил выполнить метод в контроллере, и после выполнения будут сгенерированы файлы изображений, и контроллер перенаправит на html-страницу, где я добавил <img src="*.svg">
, и изображение отобразится.
Вот код кнопки от index.html
<form method="post">
<button type="submit" name="action" value="A">A</button>
<button type="submit" name="action" value="B">B</button>
</form>
Нажмите две кнопки, чтобы получить другой график на перенаправленной странице graphres.html
.
Вот код изображения graphres.html
(показать график)
<img th:src="result.svg"/>
код контроллера:
@Slf4j
@Controller
@RequestMapping("/index")
public class GraphDrawController {
@GetMapping
public String empty(){
return "index";
}
@PostMapping
public String draw(@RequestParam(value="action", required=true) String action) throws IOException {
//code for drawing the graph...(left out)
if(action.equals("A")){
log.info(action);
graphvizDraw.drawNode();
graphvizDraw.displayGraph(); //put the graph under the path
}else if(action.equals("B")){
log.info("action");
graphvizDraw1.drawNode();
graphvizDraw1.displayGraph();//put the graph under the path
}
return "redirect:/graphres";
}
}
После нажатия кнопки «A» и кнопки «B» определенные графические файлы создаются под /src/main/resources/static/*.svg
, и информация журнала отображается правильно, но после перенаправления на новую страницу «graphres.html» изображение не может быть найден. Я попытался поместить некоторые статические файлы PNG, и HTML может успешно визуализировать изображение.
Я предполагаю, что HTML-страница визуализировалась раньше, чем выполнялся метод рисования в контроллере, поэтому он не может найти изображение, которое я хочу отобразить. Итак, как я могу заставить метод выполняться первым до рендеринга html?