关于在jsp页面中向外部js文件传值的问题

一、问题场景

前几天在写jsp的时候遇到这样一个问题——当jsp页面引入了一个外部js文件时,在jsp页面中通过EL表达式取值,然后向外部js传值却不成功。
比如在jsp中如下所示:

<script>
    var  value = '${a.value}'
</script>

在外部js中如下所示:

<script>
    let  v = value
</script>

采用这种方式是无法在外部 js 文件中获取到 value 值得,原因在于 jsp 对 js 文件的处理在客户端(浏览器)完成,这样导致了外部 js 文件无法在服务器对 jsp 进行处理时获取 value 值,而当 jsp 被处理为静态的 html 返回到客户端(浏览器)时,显然 value 值已失效(EL表达式失效),所以整个过程中外部 js 文件都获取不到 value 。

二、解决方案

这里提供两种解决方案:隐藏域传值和 js 文件改为 jsp 文件。

1、隐藏域传值

jsp 中代码如下:

<input type = 'hidden' id = 'value' name = 'value' value = '${a.value}'></input>

js 文件中代码如下:

<script>
    let  v = document.getElementById('value').value;
</script>

2、js 文件改为 jsp 文件

直接将外部 js 文件的文件扩展名改为.jsp 即可。注意:jsp 文件中对 js 外部文件的引用中也要修改文件扩展名为.jsp,如下:

<script src = '外部 js 文件.jsp' type = 'text/javascript' ></script>

PS:聪明的同学可以思考一下两种解决方案的思路分别是什么。

以上

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/2ca99c01532b

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    91数据阅读 3,634评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,592评论 18 399
  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 6,192评论 0 42
  • 一. Java基础部分.................................................
    wy_sure阅读 3,988评论 0 11
  • “直升机父母”是目前国际上流行的新词。专指一部分“望子成龙”、“望女成凤”心切的父母,就像直升机一样盘旋在孩子的上...
    相逢一笑阅读 842评论 0 6

友情链接更多精彩内容