我在JSP文件中运行以下测试javascript代码:
$(document).ready(function() {
var selection = $('#selectedMonth').val();
console.log(selection);
var tableHead = "<thead><tr><th> ${javaMap.get(selection)} </th></tr></thead>";
}其中,使用modelandview.addObject("javaMap", map);将javaMap从控制器传递给JSP.
我遇到的问题是:我运行以下代码,它工作正常,并显示正确的结果:
var tableHead = "<thead><tr><th> ${javaMap.get("Jan-2019")} </th></tr> </thead>
但当我运行上面的那个时,它根本不起作用。我尝试在var上执行console.log,日志中显示的值与Jan-2019相同
知道为什么map.get()可以处理硬编码字符串而不能处理javascript变量吗
发布于 2019-01-22 12:48:17
Javascript是一种前端技术。这意味着您编写的JS代码将由您的浏览器执行。
但是,JSP代码是在服务器端执行的。
这就是您的代码的问题所在: JSP首先在服务器->上执行,然后在浏览器中执行。因此,您永远得不到所需的输出。
“set”是在JSP尝试计算以下EL表达式后设置的。
考虑使用JSP标记库(JSTL)从JSP本身获取全部数据。查一查..
或
如果需要根据前端/用户输入处理数据,可以使用ajax调用。
https://stackoverflow.com/questions/54299988
复制相似问题