EL表达式:
·EL表达式可以代替jsp中的java代码,让jsp的代码变得更加简洁、美观;
使用EL表达式必须先将数据存储到某个域当中,否则EL表达式无法取数据;
EL表达式的主要作用:
·从某个域中取数据;
(取数据主要从pageContext、request、session、application这四个域取数据)
·将取出来的数据转变成字符串;
(如果取是数据是java对象,会自动调用java对象的toString方法转换成字符串)
·将字符串输出到浏览器;
EL表达式的语法:${表达式}
注:EL表达式在取对象的属性值的时候,取决于javabean的get方法,EL表达式在取数据时,会自动调用getXxx()的方法;
例如:${user.name} 在javabean当中,必须要有getName()方法,如果没有写上getName()方法,在取数据时,则会出现500错误;
取数据时,除了可以:
${user.name}还可以使用${user[“name”]}的写法,效果都一样;
EL表达式的两种方式:
第一种:. (一般情况常用)
第二种:[“”] (如果取的名含有特殊符号,建议使用这种方式)
EL表达式优先从小范围的域取数据;
PageContext < request < session < application
如果想从指定的域中取数据,可以指定范围:
${pageScope.xxx} 对应pageContext域
${requestScope.xxx} 对应request域
${sessionScope.xxx} 对应session域
${applicationScope.xxx} 对应application域
注:如果EL表达式在取数据时,取出来的数据是null,那么在页面展示的时候,将会显示空白(什么也没有,不会将null显示出来)
EL表达式在实际执行的时候,还是会将EL表达式翻译成java代码,因为jsp本质上就是一个servlet对象;
\${user} 表示忽略当前EL表达式,只会被当成普通字符串输出到浏览器;
·通过EL表达式获取应用根路径:
${pageContext.request.contextPath}
param 可以获取请求参数的第一个元素;语法:${param.name}
paramValue 可以获取请求参数同名情况下的所有参数;语法:${paramValue.name}
但paramValue获取到的是一个数组;
数组需要通过该语法:${paramValue.name[0]} 根据下标获取第几个
intiParam 可以获取web.xml中的<param-value>的相关信息;
根据<param-name>中的名称获取<param-value>的值;
<param-name>user</param-name>
语法:${intiParam.user}
EL表达式运算:
在EL表达式当中,加号“+”不会作字符串拼接,它只会进行数学求和运算;
当EL表达式的加号“+”无法进行运算求和时,会报错,出现NumberFormatException异常;数字转换异常;
“==”双等号在EL表达式当中,底层会调用equals()方法;
所以双等号在El表达式当中,比较的是内容,而不是内存地址;
“eq”在EL表达式当中,底层也会调用equals()方法,会双等号一样;
“!=”在EL表达式当中,底层也会调用equals()方法;
empty用于判断是否为空;

浙公网安备 33010602011771号