js中使用EL表达式总结

1.js中使用el表达式要加双引号或单引号:'${list}'


2.js变量获取el表达式中的对象:不能直接获取,直接获取得到的是该对象的toString值。


有两种方法:
一:el中直接写对象的属性var abc = '${list[0].index}';--------如用js数组变量装el表达式对象的每一个属性

二:先把对象转换成json再把json转换成对象赋值给js变量。

 

  • js控制中用到了el表达式,最开始源码如下:

  • varselected = ${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"从字符串类型转换为数字类型再做数学运算即可!

VAR  [va:(r)]  详细X
基本翻译
n. (Var)人名;(法、俄)瓦尔;(柬)瓦
abbr. 加值型经销商(value-added reseller);垂直机载火箭(Vertical Aircraft Rocket)
网络释义
var: 瓦尔省
var left: 方框左位置
var top: 方框上位置

 

posted @ 2019-08-04 16:58  zhaoyanhao  阅读(3527)  评论(0编辑  收藏  举报