我在春天为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'
我不知道我能尝试什么。
还有其他建议吗?
提前感谢。
答案 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