springmvc:如何访问js中的模型对象列表?

tv6aics1  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(353)

在springmvc中,这应该是一个微不足道的知识,但是我被困在这个棘手的部分。显然我错过了一些重要的事情!
所以,我想:
将从数据库中获取的姓名列表发送到前端
在列表名称中添加一个额外的名称(在控制器端)
访问jsp文件中javascript变量中的名称列表
//控制器

List<String> names = namesService.getnames(); ("John", "Peter", "John" )
names.add("Nick"); 
model.addAttribute("names", names); 
//JSP
<script type="text/javascript">
    var names = ${names};
</script>

接下来发生的是,从数据库接收到的名称(“john”、“peter”、“john”)在js中被识别为字符串,但“nick”被识别为未知变量nick:

Uncaught ReferenceError: Nick is not defined

为什么会这样?我该怎么解决呢?

inn6fuwd

inn6fuwd1#

当你使用 ${names} 它叫 toString() 方法 names 对象并返回其结果。例如,考虑以下代码:

List<String> names = new ArrayList<>();
names.add("alice");
names.add("bob");

在jsp中,您有:

<script type="text/javascript">
    var names = [alice, bob]
</script>

所以很明显,alice和bob引用没有定义。他们一定是 ['alice', 'bob'] .
所以把你的绳子用 ' 一切都应该正常。

List<String> names = new ArrayList<>();
names.add("'alice'");
names.add("'bob'");

相关问题