java - 访问导入的js文件中的Spring MVC模型数据

标签 java javascript spring jsp spring-mvc

我正在开发一个使用 Spring MVC 的项目,以 java 作为后端,以 HTML(JSP)/CSS/JS 作为前端。 在我的 java Controller 中,我将数据添加到模型中,如下所示

model.addAttribute("someData", theData);

我可以像这样在 JSP 文件中轻松访问它

${theData} or "${theData}"

对我来说问题是这只适用于我的 JSP 文件。我在那里导入其他 css 和 js 文件,例如

<script src="<c:url value='/resources/javascript/main.js'/>"></script>

他们似乎无法访问该模型。我知道客户端在运行时没有模型,但是 javascript 文件由服务器以与 HTML/JSP 文件相同的方式提供,那么为什么这不起作用呢?或者我必须使用任何类型的设置?

我意识到 JSP 文件中的内联 js 代码可以工作,但这不是很灵活,对我来说不是一个“真正的”解决方案。另外,我希望避免额外调用服务器(如 AJAX)来获取我的数据。

感谢您的帮助!

最佳答案

...but the javascript files are served by the server the same way as the HTML/JSP file...

不,这不是真的。静态 JavaScript、CSS 和 HTML 文件由 Web 服务器按原样提供,无需任何处理。您示例中的 EL 片段...

<script src="<c:url value='/resources/javascript/main.js'/>"></script>

...仅根据您作为函数参数提供的相对 URL 生成具体 URL。没有嵌入关于 main.js 是什么或做什么的知识。您的 JSP 文件由 Java servlet 容器显式处理。这就是为什么它拥有有关您的应用程序、bean、模型等的知识。这是一个严重的过度简化,但希望它能传达要点。

编辑

您可以在 JSP 中使用静态文件中的 JSON,但必须在应用程序的 bean 中读取、处理和存储它们作为 Java 对象。不过,我不确定您为什么要这样做,因为通过 JavaScript 读取 JSON 数据非常容易。

关于java - 访问导入的js文件中的Spring MVC模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30715199/

相关文章:

javascript - 向 Google Maps API 添加北/南/东/西控件

javascript - 无法使用 javascript 或 jquery 获取开关状态

java - 在java中读取二进制文件时将小端转换为大端

java - Web 服务和 IIS 传递/重定向

javascript - jQuery - html5sortable - 使用 Ajax 的可排序插件

java - JSP - 单击链接时如何提交表单?

spring - 带有List <X>的通用bean的Spring Boot(Kotlin)自动接线失败

java - 使用 Guice 对同一接口(interface)的多个实现进行依赖注入(inject)

java - Lotus Java Agent 如何自动导入 JAR 文件?

java - 在 Spring 中将原型(prototype)列表注入(inject) Singleton bean