如何使用 javascript 变量访问模型属性

How do you access a model attribute with javascript variable

本文关键字:模型 属性 访问 变量 何使用 javascript      更新时间:2023-09-26

我在春天向我的ModelAndView添加一个属性,然后我将其转发到我的百里香叶视图。

在视图中,我有以下代码:

<script th:inline="javascript">
        /*<![CDATA[*/
            var applicationName = /*[[${T(com.sample.constants.ApplicationConstants).MODEL_ATTR_COLLECTED_VALUES}]]*/ "Test";
            var collectedValueJson = [[${collectedValues}]];
            console.log(collectedUserJson);
        /*]]>*/
</script>

由此产生的结果是

var applicationName = 'collectedValues';
var collectedUserJson = '[{'"givenname'":'"Muster'",'"surname'":'"Peter'"}]';

没关系。现在我的愿望是,我可以采用var application并使用此变量访问 modelattribute,但这不起作用。

结果是这样的:

var tmp2 = ${applicationName};

另一个尝试是,我可以使用第一次尝试的语法/*[[ ]]*/访问 modelattribute:

var applicationName = ${/*[[${T(com.sample.constants.ApplicationConstants).MODEL_ATTR_COLLECTED_VALUES}]]*/};

但结果将是:

var tmp = ${'collectedValues'

我不知道我能尝试什么。

还有其他建议吗?

提前

谢谢。

有一个解决方法值得一提:将属性写出到

<span id="myvar" th:text="${attributeName}"></span>

然后使用 JavaScript 读取它

document.getElementById("myvar").value

或一些类似的jQuery调用:

$('#myvar').text() 

您可以:

<span id="span_id" style="display: none;" th:text="${attributeName}"></span>

然后在你的Javascript中:

document.getElementById("span_id").innerHTML
无法访问

模型属性,因此它们位于服务器端,并且在将 jsp 渲染为 HTML 时会丢失