EL表达式有无双引号的区别

最近做项目时发现原来对EL表达式理解太浅,现在做的是springMVC项目,前端只是简单的JQuery和JSP简单代码,其区别如下:

1.EL表达式引用双引号时,前端自动将其转换为一个字符串,如果不加,其值为一个变量;一般值类型(数字、字符串)时作用没什么区别,如果从后台往前端传输一个集合或数组到前端时,区别就很大,例如后台传值List<String> alist,alist中有两个值1、2,则前端“${alist}”是一个值为“[1,2]”,length为5的字符串,而${alist}为一个1、2的数组变量,其length为2;

2.如果前端引用的${alist},后端没有传入时,页面加载会报错,必须从后端传值,而如果此时引用的是“${alist}”,页面不会报错,只是其值为空。

以我的理解,只要明白了上述字符串与变量的区别,就可以很明白的使用EL表达式了。

时间: 2024-08-28 19:23:23

EL表达式有无双引号的区别的相关文章

settimeout里面函数有无双引号的区别

在写定时器时很容易搞混,所以记下防止忘记. 双引号中的作用域不捕捉局部变量,不用双引号包着的是捕捉局部作用域 1 var a = function() 2 { 3 alert(1111) 4 } 5 function abc() 6 { 7 var a= function () 8 { 9 alert(2222) 10 } 11 setTimeout("a()",3000)//111 12 setTimeout(a,3000)//222 13 } 14 abc() 想用双引号的写法,就

JSP参数传递兼EL表达式

/** 浏览器地址栏输入?方式传递参数 ?test=123 */ 可以用${param.test}方式输出 /** JSP页面中输入 <% request.setAttribute("test2", "1234");%> 传递参数 */ 可以在页面代码中输入以下方式输出: ${requestScope.test2} <%=request.getAttribute("test2") %> 参考:关于EL表达式中request

el表达式跟ognl表达式的区别(转)

EL表达式: >>单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application.>>如果在struts环境中,它除了有在上面的四个作用域的取值功能外,还能从值栈(valuestack)中取值.>>特点1:${name},name在值栈中的查找顺序是:先从对象栈中取,取到终止,否则,向map中取.>>特点2:在对象栈的查找顺序是,先从model中找是否有name这个属性,找到终止,否则,找action中是否有n

【转】JSP中的JSTL与EL表达式用法及区别

对于JSTL和EL之间的关系,这个问题对于初学JSP的朋友来说,估计是个问题,下面来详细介绍一下JSTL和EL表达式他们之间的关系,以及JSTL和EL一些相关概念! EL相关概念JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程语言,甚至不是脚本编制语言.通常与 JSTL 标记一起作用,能用简单而又方便的符号来表示复杂的行为. EL基本格式 EL表达式的格式:用美元符号($)定

js 中使用el表达式 关键总结:在js中使用el表达式一定要使用双引号

js 中使用el表达式 关键总结:在js中使用el表达式一定要加双引号 js控制中用到了el表达式,最开始源码如下: Java代码   var selected = ${requestScope.xxxxForm.recordNumPerPage} 这样始终js错误,因为在第一次的时候requestScope.xxxxForm.recordNumPerPage为null.于是在boss的指导下,简单的加了两个引号,代码变成 Java代码   var selected = "${requestSc

EL表达式${}里外要不要加双引号问题?

如题: 因为${u}包含两句语句: pageContext.findAttribute("u");即从作用域中通过key取出value值 当${u}语句中的u不带引号时,当成key取值时是会加""的.所以${}里面只要是作用域里的key值就不用加引号.(参照19期el文档的获取数据部分) 输出value 而当${}里面是字符串时,就只相当于java的out语句. ${"3"}---输出3 ${"3+5"}--输出3+5 ${&

el表达式跟ognl表达式的区别

:  EL表达式 单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application. 如果在struts环境中,它除了有在上面的四个作用域的取值功能外,还能从值栈(valuestack)中取值 特点: ${name},name在值栈中的查找顺序是:先从对象栈中取,取到终止,否则,向map中取. 在对象栈的查找顺序是,先从model中找是否有name这个属性,找到终止,否则,找action中是否有name这个全局变量 :${#name},里面的是不带#

EL表达式和OGNL表达式 区别小结

1:  EL表达式 单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application. 如果在struts环境中,它除了有在上面的四个作用域的取值功能外,还能从值栈(valuestack)中取值 特点: ${name},name在值栈中的查找顺序是:先从对象栈中取,取到终止,否则,向map中取. 在对象栈的查找顺序是,先从model中找是否有name这个属性,找到终止,否则,找action中是否有name这个全局变量 :${#name},里面的是不带

OGNL表达式与EL表达式

一.OGNL表达式 a)什么是OGNL? OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言, 通过它简单一致的表达式语法.主要功能: Ø  可以存取对象的任意属性: Ø  调用对象的方法: Ø  遍历整个对象的结构图: Ø  实现字段类型转化等功能. 它使用相同的表达式去存取对象的属性.这样可以更好的取得数据. b)OGNL与Struts2 OGNL是独立的开源组件 Struts2对其进行了改造和封装,OGNL内部自己会维护一个OGN