gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:28:07 29 4
gpt4 key购买 nike

如果我的 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 中使用它页:

    <script type="text/javascript" src="js/actually_javascript.jsp"></script>

    它欺骗了 web 服务器来处理服务器端的文件,但是由于上面提到的原因 #1,这仍然没有用。如果您将值存储在 session 中,它可能会起作用,但在一天结束时,这将是一种丑陋的 hack,您会失去 IDE 的代码突出显示和完成功能,这将被愚弄认为您正在编辑一个实际的 .jsp 文件。不推荐。

总而言之,我认为在 JavaScript 中访问 {$varName} 的唯一方法是:

  • 让 Javascript 成为 .jsp 文件的一部分,在 <script> 标签内
  • 将您的 Javascript 放在它自己的 .js 文件中,但在您的 .jsp 页面中仍然有一个 <script> 标记,用于初始化您在 中编写的模块>.js 文件并传递来自请求的值,例如 ${varName}

关于javascript - 如何从jsp外部的js读取模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23825906/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com