如何从jsp外部的js中读取模型属性

How to read model attribute from js outside jsp

本文关键字:读取 模型 属性 js jsp 外部      更新时间:2023-09-26

如果我的javascript/jquery代码是在jsp文件中编写的,我可以使用"${varName}"引用Spring的modelAttribute值。

然而,我想把javascript代码移动到它自己的文件中,以保持jsp文件更具可读性。当我这样做时,它将无法再找到那个modelAttribute。我该如何解决这个问题?

我如何从一个。js文件指向模型属性?

提前感谢!

好了,我已经做了实验,试图找到这个问题的答案。

事实上,似乎没有直接的解决方案,原因如下:

  1. 当您将Javascript代码移动到一个单独的文件时,这意味着浏览器将启动一个单独的请求来获取该文件。因此,您存储在请求作用域中的数据(也称为${varName})不是获取.js文件的请求的一部分;它只是获取.jsp文件的请求的一部分。因此,${varName}值在你的Javascript文件中是不可用的。

  2. 另一个原因是:.js文件没有被web引擎(在这种情况下很可能是Tomcat)作为服务器端代码处理,所以${varName}文本被完全忽略。为了好玩,我试着做一个hack:我把我的脚本文件从.js重命名为.jsp,并在我的.jsp页面中使用它:

    <>之前之前

    它欺骗web服务器在服务器端处理文件,但这仍然不起作用,原因1如上所述。如果您将值存储在会话中,它可以工作,但在一天结束时,这将是一种丑陋的hack,并且您将失去IDE的代码高亮显示和完成功能,这些功能会被误认为您正在编辑一个实际的.jsp文件。不推荐。

总之,我认为在JavaScript中访问{$varName}的唯一方法是:
  • 让Javascript成为.jsp文件的一部分,在