EL表达式${}里外要不要加双引号问题?
如题:
因为${u}包含两句语句:
- pageContext.findAttribute("u");即从作用域中通过key取出value值
- 当${u}语句中的u不带引号时,当成key取值时是会加“”的。所以${}里面只要是作用域里的key值就不用加引号。(参照19期el文档的获取数据部分)
- 输出value
- 而当${}里面是字符串时,就只相当于java的out语句。
- ${"3"}---输出3
- ${"3+5"}--输出3+5
- ${"3"+"5"}--输出8
- 而当${}里面是字符串时,就只相当于java的out语句。
注:当需要在${}输出后还是各字符串的时候,需要给${}外加双引号。
如:msg的值为"此处为字符串"。
利用jsp页面中var massage = ${msg};获取后massage=此处为字符串-----显然是不对的
必须var massage = "${msg}"---------才是对的
注:服务器给浏览器发送的是el表达式取值后的结果,也就是说el表达式是在服务器端完成的解析。
如果el表达式的取值是字符串的话,就应该加双引号。
如果是数字类型,则不需要加。