当前位置: 首页 > 工具软件 > JSEL > 使用案例 >

JS中使用EL表达式获取后台传递的参数

高承望
2023-12-01

今天在项目中遇到的问题,jsp页面引用的单独的js文件,但是后台传递的一些参数在js文件中直接用EL表达式获取报错,网上查资料找到了解决方案,做个汇总,以供参考。

JS中使用EL表达式获取后台传递的参数,有两种情况。
第一种情况
(1)在jsp页面引入jstl标签库:
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>

(2)在jsp页面写js代码:

<script>
    var merchantId=” ${sessionScope.merchantIdMap}”
</script>

第二种情况
(1) 在jsp页面引入jstl标签库:
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>

(2) jsp文件引入单独的js文件,此时不能在js文件中直接使用EL表达式,会报错,此处有两种处理方式:
第一种:
在jsp页面中用隐藏域存储参数值:

<input type=”hidden” id=merchantIdMap” value=”${sessionScope.merchantIdMap}”>

在js文件中获取此隐藏域的值:var merchantId=$(“#merhantIdMap”);

第二种:
在jsp页面中定义全局的变量:

<c:set var="merchantIdMapGlob" value="${sessionScope.merchantIdMap}" scope="application"/>
<c:set var="warehouseIdMapGlob" value="${sessionScope.warehouseIdMap}" scope="application"/>
<script>
    var merchantIdMapGlob = "${merchantIdMapGlob}";
    var warehouseIdMapGlob = "${warehouseIdMapGlob}";
</script>

在js文件中可直接使用此全局变量:var merchantId = merchantIdMapGlob;

 类似资料: