EL表达式

EL表达式

四个域的寻找顺序时:page,request,session,application。

使用EL表达式的时候,如果找不到键值为name的属性值不会显示为null,而是显示空字符串。如果确定键值是在request域中,就可以使用下面的这个EL表达式:

${requestScope.name}

从web域中的封装了的数据中得到对象的某个属性值且显示出来。代码如下:

  <% Person p = new Person();

    Address address = new Address();

    address.setCity("广东");//Adress类中有个私有String属性为city

    p.setName("mike");//Person类中有私有String属性为name

    p.setAddress(address);//Person类中有私有Adress属性为address

    session.setAttribute("person", p);//存入sessionScope

%>

${person.name}<!-- 从WEB域中找到键值为person的对象,然后再person对象中找到name属性 -->

${person.address.city}

${person['name']}<!-- 也可以用[]方式 -->

${person['address']['city']}

 

从List集合对象中获取某个值并显示。

<%

    List<Person> list = new ArrayList<Person>();

    list.add(new Person("aaa"));

    list.add(new Person("bbb"));

    list.add(new Person("ccc"));

    application.setAttribute("list_1", list);

%>

 

${expression}

EL提供“”和“[ ]”两种运算符来存取数据。

当要存取的属性名称中包含一些特殊字符,例如“•”或者“?”等非字母或非数字的符号,就一定要用“[ ]”,比如:${user.My-name}应该写为${user[“My-Name”]}

如果要实现动态取值时,就可以用“[ ]”来做,而“•”无法做到动态取值。例如:${sessionScope.user[data]}中data是一个变量;

 

EL表达式原理及注意点:

原理:EL表达式在获取某个对象的属性值时,先将某个属性值首字母变成大写,然后加上get前缀,拼接成getter方法,通过反射将该对象构建出来,然后再对该对象执行getter方法,这与私有属性并没有关系,所以要注意,JavaBean的属性名要小写,且要有getter方法,不然会报错。

 

EL表达式执行运算

语法:${运算表达式}

常见运算符:==(eq)   !=(ne)    <(lt)    >(gt)    <=(le)    >=(ge)    &&(and)   ||(or)   !(not)

判断是否为空:${empty name }

三目运算符:${name == null?"null":name }

 

利用C标签,将List集合数据遍历出来:

       <c:forEach items="${passenger}" var="ps">

                  <li style="height: 32px;margin-top: 5px;">

                      <div>${ps.passengerName}</div>

                     <div>${ps.orderNum}</div>

                      <div>${ps.startDate}</div>

                     <div>${ps.adultTicket}</div>

                     <div>${ps.startTime}</div>

                      <div>${ps.pnrNum}</div></li>

       </c:forEach>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值