Как отобразить ресурсы изображения, созданные после определенного метода, выполненного в HTML в Spring? - PullRequest
0 голосов
/ 28 апреля 2019

Я новичок в 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...