快捷搜索: 王者荣耀 脱发

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

今天在项目中遇到的问题,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;

经验分享 程序员 微信小程序 职场和发展