EL表达式和JSTL表达式

EL:Expression Language(表达式语言)

EL的功能:

替代JSP页面中数据访问时的复杂编码
<!-- 
EL功能体现:替换小脚本
//在JSP中使用Java脚本的局限
//在JSP页面中嵌入大量的Java代码
//访问结构比较复杂的数据时代码烦琐,且经常需要强制类型转换
-->
<%  
    Employee employee = (Employee) request.getAttribute("employee");
    Computer comp = employee.getComputer();
    String manufacturer = comp.getManufacturer();
%>
<!-- EL只需要一句,就可以替代java脚本 -->
${requestScope.employee.computer.manufacturer}

EL的特点:

自动转换类型 EL得到某个数据时可以自动转换类型 

简单易用 

EL的语法:

${ EL expression }

EL的4种取值范围:

pageScope,requestScope,sessionScope,applicationScope
属性范围 EL中的名称
page pageScope
request requestScope
session sessionScope
application applicationScope

注意:

1、${pageScope.username}表示在page作用域查找变量username,找不到返回null

2、如果在表达式中不标明作用域,则按照page → request → session → application的作用域顺序依次查找,找到即返回,最终找不到返回null

EL取值方式:

1、通过变量名取值:

${变量名} 推荐写为:${作用域.变量名}

2、获取对象的属性值:

<%=((User)request.getAttribute("user")).getName() %>

①、点操作符:${user.name}

②、[]操作符:${user["name"]} //注意中括号里的双引号,如果不写则表示变量名

注意:JavaBean中需要有相应getter方法才能用EL表达式这样取值

3、获取集合元素:

List
// 在Servlet或JSP中保存数据
List names = new ArrayList();
names.add(0, "LiYang");
names.add(1,"WangHua");
request.setAttribute("names",names);

// 在JSP中访问数据
姓名:${ names[0] }<br/>
姓名:${ names[1] }<br/>
//注意:使用[ ]指定元素下标
Map
// 在Servlet或JSP中保存数据
Map names = new HashMap();
names.put("one", "LiYang");
names.put("two", "WangHua");
request.setAttribute("names", names);

// 在JSP中访问数据
姓名:${ names.one }<br/>
姓名:${ names["two"] }<br/>

注意:

1、Map建议使用String做key,如果使用纯数值格式则只能使用长整形
    Map names = new HashMap();
    names.put(1L, "LiYang");
    names.put("two", "WangHua");
    request.setAttribute("names", names);
2、Map中key的类型:
//对于String类型的key
${names["two"]}和${names.two}

//对于Long类型的key仅可使用
${names[1]}

执行表达式

关系操作符、逻辑操作符、empty操作符
关系操作符 说明 示例 结果
==或者eq 等于 ${23==5}${23 eq 5}
${"a" =="a"}${"a" eq "a"}
false
true
!=或者ne 不等于 ${23!=5}${23 ne 5} true
<或者lt 小于
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值