在javascript中读取弹簧控制器模型

时间:2016-01-18 09:23:23

标签: javascript java spring jsp

我有一个控制器,其中JSONObject作为参数传递。我想在javascript(客户端)中使用对象“all”而不是在服务器端(JSP),因此我不想使用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";
    }

我有一个JSP文件导入Javasript文件,我使用该属性,但我不知道如何访问它。如果我在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模型属性?

提前致谢。

2 个答案:

答案 0 :(得分:1)

当您使用src时,您的浏览器(而不是您的后端)将尝试从

获取javascript文件
"${pageContext.request.contextPath}/resources/js/all.js"

因此服务器不会将文件作为ModelView处理。

答案 1 :(得分:1)

JavaScript在客户端运行。您的模型gradle在客户端不存在,它只在您呈现.jsp时存在于服务器端。

如果您希望模型中的数据可用于客户端代码(即.javascript),则需要将其存储在呈现页面中的某个位置。例如,您可以使用Jsp编写JavaScript,将模型分配给JavaScript变量。 例如model.addAttribute("all",all);