章节三 :EL表达式 ,及其 运算

  • jsp中${  }  是EL表达式

目的是为了输出${ } 中指定的属性(参数、对象等)的值,相当于out.print该属性值到客户端浏览器的响应中。

也可以省略目标范围,如:

${user[name]}   等价于   ${user.name}     
意思是下面三条语句:
User user = (User)request.getAttribute(user);

String name = user.getName();

out.println(name);
 

不加范围关键字时,相当于从当前jsp页面page的范围起,依次往更大范围的域搜寻 user 对象,然后获取该对象的name 属性值

其搜寻的范围依次是:page、request、session、application

如果未搜索到,即会返回值null

——————————————————————————————————

  • EL表达式的运算


1 、EL表达式的关系运算(比较运算)

注意:
1)使用lt   gt   le    ge    是在XML中去使用,因为XML中不能出现>和<
2)注意:在使用EL 关系运算符时,不能够写成:

${param.password1} = = ${param.password2}   或者   ${ ${param.password1 } = = ${ param.password2 } }

而应写成    ${ param.password1 = = param.password2 }


2、逻辑运算:

3、Empty运算符
Empty运算符主要用来判断值是否为空(包括:NULL,空字符串,空集合)
运算的结果值:只能是true和false
如果是空就是true
举例:

test.jsp代码:

<%@page pageEncoding="utf-8" %>
name值为:           ${param.name }
empty处理结果:     ${empty param.name}
==null处理结果:    ${param.name == null }

第一种情况:地址栏输入:http://127.0.0.1:8080/test.jsp 
显示: 
name值为: 
empty处理结果:true 
==null处理结果:true

第二种情况:地址栏输入:http://127.0.0.1:8080/test.jsp?name= 
显示: 
name值为: 
empty处理结果:true 
==null处理结果:false 
分析:第一种情况的name=null,第二种情况的name=“ ” 
empty表达式对于name=null和name=”“的识别是一样的,都返回true; 
==null表达式对于name=null判断为true,而对于name=”“判断则是false; 
如果非要使用==null表达式判断是否为空,需要将表达式写成如下:

${param.name == null && param.name!=""}
4、三目运算

${ A ? B : C}

猜你喜欢

转载自blog.csdn.net/qq_26882339/article/details/111794943