Springboot + Thymeleaf + HTML用动态值替换元标记内容属性

时间:2019-05-17 14:55:00

标签: html spring thymeleaf url-redirection meta-tags

我需要在HTML中使用动态值填充meta标签的content属性。我正在将Spring Boot与thymeleaf模板引擎一起使用。我尝试寻找解决方案,但所有解决方案要么零零碎碎,要么不直接回答我的问题。由于项目的性质,我不想使用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 个答案:

答案 0 :(得分:3)

Thymeleaf本机支持th:content属性。无需进行JavaScript hack。 See the list of supported attributes

<meta http-equiv="Refresh" th:content="|0; url=${url}|" />

答案 1 :(得分:0)

我想发布一个可行的解决方案,以使我自己和以后偶然发现此页面的其他人受益

<!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>