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

一、问题场景

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


在外部js中如下所示:


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

二、解决方案

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

1、隐藏域传值

jsp 中代码如下:


js 文件中代码如下:


2、js 文件改为 jsp 文件

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



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

以上

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

你可能感兴趣的:(关于在jsp页面中向外部js文件传值的问题)