如何在外部JS中使用EL表达式或者c标签产生的值

为了维护方便,一般是将大量的javascript单独写在一个js文件中,但问题是,许多js文件中使用了EL表达式,如何获取它们的值?在网络上搜寻了下资料,经过验证如下


1、在原JSP页面中将这些值封装进hidden域,然后传给js文件

比较直接的一种做法,但在后期维护时候可能会引起歧义(例如过一段时间后看JSP页面时候不知道这些hidden是干嘛的了)


2、我认为比较好的一种方式,在JSP页面中先声明一个<script></script>,在其中将你要传递的EL表达式作为全局变量写入,然后再导入外部JS代码

例如,JSP页面上,获取了一个row值,还有一个二维数组arr[ ][ ]用来保存Servlet传递过来的对象中的属性,再导入外部js文件,注意,这里顺序不能反了,否则这些变量无法使用

<script type="text/javascript">
var row = "${pageScope.row}";
var arr = new Array();
var count = 1;
		<c:forEach items="${list}" var="dec" varStatus="status">
		arr[count] = new Array();
		arr[count][1] = "${dec.decreaseID}";
		arr[count][2] = "${dec.decreaseFrom}";
		arr[count][3] = "${dec.decreaseTo}";
		arr[count][4] = "${dec.decreaseRate}";
		arr[count][5] = "${dec.decreaseFareRate}";
		arr[count][6] = "${dec.decreasePriceOfEach}";
		arr[count][7] = "${dec.decreasePriceOfSum}";
		arr[count][8] = "${dec.fareRateID}";
		count++;
		</c:forEach>
</script>
<script type="text/javascript" src="../../Javascript/DecreaseShowData.js"></script>   <!-- 外部js文件引入-->


3、另外在网上还有一种办法,就是直接将.js文件保存为.jsp文件,然后在导入时改为.jsp

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

类似上面这种的导入,然后el表达式就可以跟javascript代码写在一起了,但我试了下并不起作用,不知道是不是姿势不对=.=!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值