我有一个 Controller ,其中将 JSONObject 作为参数传递。我想在 javascript(客户端)而不是服务器端(JSP)中使用对象“all”,所以我不想使用 JSP 标签获取对象。
@RequestMapping(value = { "/dfi/rca" }, method = RequestMethod.GET)
public String getRcaResult(Model model, String flight_id) {
...
JSONObject all = new JSONObject ();
...
model.addAttribute("all",all);
return "dfi/rca";
}
我有一个导入 Javasript 文件的 JSP 文件,我在其中使用了 all 属性,但我不知道如何访问它。如果我在 JSP 文件中使用此代码,它会正常工作:
<script type="text/javascript">
var all= "${all}";
</script>
但是如果我尝试在 JSP 中导入一个 Javascript 文件,它什么也得不到:
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/all.js"></script>
在 all.js 中:
var rcaresults = JSON.parse('${all}');
有什么方法可以读取 Javascript 文件中的 Spring 模型属性吗?
提前致谢。
最佳答案
JavaScript 在客户端运行。您的型号model.addAttribute("all",all);
在客户端不存在,它仅在您呈现 .jsp 时存在于服务器端。
如果您希望模型中的数据可用于客户端代码(即 javascript),则需要将其存储在渲染页面的某个位置。例如,您可以使用 Jsp 编写 JavaScript,将您的模型分配给 JavaScript 变量。
例如 <script>var paramOne =<c:out value="${all}"/></script>
关于javascript - 在 javascript 中读取一个 spring Controller 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851162/