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页面中定义全局的变量:

set var="merchantIdMapGlob" value="${sessionScope.merchantIdMap}" scope="application"/>
set var="warehouseIdMapGlob" value="${sessionScope.warehouseIdMap}" scope="application"/>

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

你可能感兴趣的:(前端)