Springboot + Thymeleaf + HTML заменяет атрибут содержимого метатега динамическим значением - PullRequest
0 голосов
/ 17 мая 2019

У меня есть требование заполнить атрибут содержимого метатега в моем html динамическим значением. Я использую весеннюю загрузку с движком шаблонов. Я пытался найти решение, но все решения либо разбиты на кусочки, либо не отвечают на мои вопросы напрямую. Я не хочу использовать JQuery или любую другую инфраструктуру javascript из-за характера моего проекта, поэтому отправляю этот запрос.

Уже пробовал различные функции тимелина из коробки

    @Value("${redirect.url}")
    String redirectUrl;

    @RequestMapping(value = "/")
    @CrossOrigin
    public String index( Model model) {
        model.addAttribute("url", redirectUrl);
        return "index";
    }
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="Refresh" content="0; url="/> <!-- Need to be able to populate dynamic value  by using thymeleaf-->
</head>
</html>

Я, кроме URL-тега, содержит фактический URL-адрес, переданный с моего контроллера

Ответы [ 2 ]

3 голосов
/ 17 мая 2019

Thymeleaf изначально поддерживает атрибут th:content. Не нужно идти с взломом JavaScript. См. Список поддерживаемых атрибутов .

<meta http-equiv="Refresh" th:content="|0; url=${url}|" />
0 голосов
/ 17 мая 2019

Я хочу опубликовать рабочее решение, чтобы принести пользу себе и другим, кто в будущем наткнется на эту страницу

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>

    <meta charset="UTF-8" />
    <meta http-equiv="Refresh" content="0; url="/>

    <script th:inline="javascript">
        /*<![CDATA[*/
        var myUrl = /*[[${url}]]*/ 'http:localhost:3000';
        var myFinalUrl = "0; url=" + myUrl;
        document.querySelector('meta[http-equiv="Refresh"]').setAttribute('content',myFinalUrl);
        /*]]>*/
    </script>
</head>
</html>
...