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

时间:2014-11-24 13:10:10

标签: javascript java spring thymeleaf

我在春天为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'

我不知道我能尝试什么。

还有其他建议吗?

提前感谢。

3 个答案:

答案 0 :(得分:3)

您无法访问模型属性,因此它们位于服务器端,并且在将jsp呈现为HTML时丢失了它们

答案 1 :(得分:2)

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

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

然后使用

使用JavaScript读取它
document.getElementById("myvar").value

或类似的jQuery调用:

$('#myvar').text() 

它不够优雅但是有效。

答案 2 :(得分:0)

你可以:

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

然后在你的Javascript中:

document.getElementById("span_id").innerHTML