如何在 Jquery 中访问模型属性(列表)
Posted
技术标签:
【中文标题】如何在 Jquery 中访问模型属性(列表)【英文标题】:How do you access a model attribute (liste) in Jquery 【发布时间】:2017-11-11 09:13:04 【问题描述】:如何从 Spring 模型中读取模型“列表”并将其设置为循环中的 jquery?我使用 Thymeleaf 作为模板引擎。
弹簧端:rdv.java
@RequestMapping(value = "/RdvListe", method = RequestMethod.GET)
public String RdvListe(Model model)
List<Rdv> listRdv=rdvMetierImp.listRdv();
model.addAttribute("listRdv",listRdv);
return "RdvListe";
客户端:script.js
$(function ()
var events = [
title: 'Rdv with adam',
start: '2017-06-09'
];
);
结果是这样的:
$(function ()
$.each(listRdv, function (key, value)
var events = [
title: value.title,
start: value.date'
];
);
);
【问题讨论】:
【参考方案1】:你可以在官方Thymeleaf中找到documentation:
<script th:inline="javascript">
/*<![CDATA[*/
...
var listRdv= [[$listRdv]];
...
/*]]>*/
【讨论】:
你不想要什么? 在 javascript 中获得它后,您可以循环浏览它【参考方案2】:在 html 页面中编写以下脚本
<script th:inline="javascript">
var listRdv= [[$listRdv]];
</script>
在 script.js 文件中使用 listRdv 变量
var events=[];
$.each(listRdv, function(index,value)
var event=
title: value.title,
start: value.date'
;
events.push(event);
)
【讨论】:
【参考方案3】:作为一个选项,您可以使用从 Java 对象到 JSON 的转换器。如Jackson。
那么你的代码可以如下:
ObjectMapper mapper = new ObjectMapper();
String jsonInString = mapper.writeValueAsString(listRdv);
model.addAttribute("listRvd", jsonInString);
然后在您的 thymeleaf 模板中,您可以将此 JSON 对象分配为 javascript 变量。
虽然这不是您可以尝试的最佳做法。
【讨论】:
以上是关于如何在 Jquery 中访问模型属性(列表)的主要内容,如果未能解决你的问题,请参考以下文章