我正在JSP文件中运行以下测试javascript代码:
$(document).ready(function() {
var selection = $('#selectedMonth').val();
console.log(selection);
var tableHead = "<thead><tr><th> ${javaMap.get(selection)} </th></tr></thead>";
}
其中javaMap
与modelandview.addObject("javaMap", map);
从控制器传递到JSP。
我遇到的问题是: 我运行以下代码,它可以正常工作并显示正确的结果:
var tableHead = "<thead><tr><th> ${javaMap.get("Jan-2019")} </th></tr>
</thead>
但是当我运行上面的那一个根本不起作用。我尝试在var上执行console.log,日志中显示的值与Jan-2019
任何想法,为什么map.get()使用硬编码的字符串但不能使用javascript var
答案 0 :(得分:0)
Javascript是一项前端技术。这意味着您编写的JS代码将由浏览器执行。
但是,JSP代码是在服务器端执行的。
这是您的代码的问题:JSP首先在服务器上执行->然后在浏览器中执行js。因此,您永远不会获得所需的输出。
在JSP尝试评估以下EL表达式后设置“选择”。
考虑使用JSP标记库(JSTL)从JSP本身获取全部数据。
或
如果您需要根据前端/用户输入来处理数据,则可以使用ajax调用。