如何在thymeleaf中设置全局变量?

问题描述 投票:0回答:4

我在前端使用

thymeleaf
并且我知道
variable
 中的 
thymeleaf

概念
<span th:with="var=${someValue}" th:text="${var}"></span>

如果我使用

th:text
,变量中的值将被打印,我可以在同一元素中使用该变量,有没有办法在其他元素中使用
var
,例如

<span th:with="var=${someValue}"></span>

<span th:text="${var}"></span>

我需要向该变量提供

global scope
在百里香中可能吗?

thymeleaf
4个回答
7
投票

在开头

var
标签中定义
body

<body th:with="var=${var_value}">

2
投票

只有嵌套项才能看到变量。 Div 标签只是一个示例。您可以使用您想要的标签

<div th:with="var=${var_value}">

  inside div tag var is visible.

</div>

1
投票

thymeleaf 不支持全局变量,但可以通过内联 javascript 实现。

  • Thymeleaf var_value 存储在 javascript 变量“value”中,并使用 JQuery 设置输入字段中的值。

<script th:inline="javascript">
        /*<![CDATA[*/
            $(document).ready(function (){
            var Value = /*[[${var_value}]]*/ '';
            $("#ID").val(Value);
            });
        /*]]>*/
    </script>
    
    
   
 <input type="text" class="order-entry" id="ID" placeholder="" th:value="${''}" />


0
投票

我在所有应用程序的视图中都有很多全局变量。 因此,我制作了可重新加载的

Properties
文件,并针对每个请求将所有道具放入
modelAndView
中,以便它们在任何视图中都可用:

public class MvcConfiguration implements WebMvcConfigurer {
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
        if (modelAndView != null && !modelAndView.isEmpty()) {
            modelAndView.addObject("view", AppConfig.viewProps);
           // any other variable, e.g. logged user
        }
    }

在任何视图中访问它们:

${view.get('propsKey')}

Reloadable 帮助我在运行时进行更改,而无需重新启动应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.