1.js中使用el表达式要加双引号或单引号:‘${list}‘
2.js变量获取el表达式中的对象:不能直接获取,直接获取得到的是该对象的toString值。
有两种方法:
一:el中直接写对象的属性var abc = ‘${list[0].index}‘;--------如用js数组变量装el表达式对象的每一个属性
二:先把对象转换成json再把json转换成对象赋值给js变量。
js控制中用到了el表达式,最开始源码如下:
var
selected = ${requestScope.xxxxForm.recordNumPerPage}
这样始终js错误,因为在第一次的时候requestScope.xxxxForm.recordNumPerPage为null。
于是在boss的指导下,简单的加了两个引号,代码变成
var
selected = “${requestScope.xxxxForm.recordNumPerPage}”
功能自动实现。
总之,在js中使用el表达式一定要使用双引号。
如果${sessionScope.userName}从服务器端获取到的值是张三,那么最终浏览器解释执行得到的就是如下这样的结果
var message = 张三;
这样肯定是不行的,javascript中字符串肯定是要用引号引起来的,像var message = "张三";或者是像var message = ‘张三‘;这样才对,所以这下知道为什么在javascript中使用el表达式一定要用引号引起来了吧,不管是单引号还是双引号,总之就是要用引号引起来。
像alert(${sessionScope.userName});这种写法浏览器最终解释执行得到的结果就是alert(张三);所以这样写肯定会有问题,只有alert("${sessionScope.userName}");这样写或者alert(‘${sessionScope.userName}‘);这样写才可以,浏览器最终解释执行得到的结果就是alert("张三");和alert(‘张三‘);
还有就是如果${sessionScope.age}从服务器取出的是一个数字呢?比如${sessionScope.age}从服务器取出的值是16,那么要不要加引号呢?
alert(${sessionScope.age});浏览器最终解释执行得到的结果就是alert(16);你们自己想想,javascript的语法中,数字要不要加引号呢?,在javascript中定义一个数字类型的变量像var age =16;这样写是没有任何问题的,然后alert(age);可以正常弹出16,没问题,如果我们像var age = "16" 或者像var age = ‘16‘这样写呢?也没问题,只不过这里加了引号的16就是一个字符串了。所以不管EL表达式从服务器上取到的值是字符串的还是数字,最好都加上引号,这样做比较保险,也比较省事,不管是单引号还是双引号,总之加上引号肯定没问题。如果EL表达式从服务器上取到的值是数字,在javascript中给这个数字加上引号也没关系,如果客户端要用这个加了引号的数字做数学运算,我们可以利用javascript中的函数把这个加了引号的数字转换成数字类型再做运算! 比如var age = "${sessionScope.age}" ,浏览器解释执行后得到的结果是var age = "16";大不了我们在客户端利用javascript的转换函数,把age = "16"从字符串类型转换为数字类型再做数学运算即可!
原文:https://www.cnblogs.com/zhaoyanhaoBlog/p/11298743.html