zoukankan      html  css  js  c++  java
  • JSP_EL使用

    JSP中EL表达式的简单介绍和使用

    参考资料:

    http://www.java3z.com/cwbwebhome/article/article8/8124.html?id=2453

    http://www.blogjava.net/rabbit/archive/2010/01/22/310560.html

    写在前面的话:J2ee5默认不支持El表达式,如何开启支持?见我的另一篇文章。

    J2EE5(Servlet2.5)对EL表达式的支持

    1.什么是EL表达式

    EL Expression Language (表达式语言)最初是在 JSTL1.0 中定义, JSP2.0 引入,可以和 JSTL 结合使用也可以了 scriptlets 结合使用。


    2.常用功能

    A.取值(一级或多级)      B.执行逻辑关系运算


    3.EL表达式的取值操作(${ bean.name }   ${  bean['name'] }

         3.1.${obj}//会自动到内置对象(pageScope,requestScope,sessionScope,applicationScope)里面获取名为“obj”的属性。如同以下代码。在这里如果request和session范围都有一个名为“obj”的属性,那么取到的是request范围内的。也就是说它查找的范围是从小到大,如果找到就不再去大范围内找。如果没有找到,就接着向大的范围搜索,如果最后都找完了,还是没找到,那么就是null,在页面显示的就是空白。 当然这里我们也可以指定范围,例如${sessionScope.userName},这个时候就只会到session里面去搜索,如果找不到就是null。

    <%=session.getAttribute("obj")%><jsp:getProperty name="" property=""/>
     

     

         3.2.${obj.attr1}//这里和上面不同的一点是,它是多级的。也就是说obj这个属性对应的不再是一个简单的字符串(String)或者数字(Integer)(当然这里也会自动装箱拆箱),而是我们自己定义的一个POJO的对象。此时我们用${obj}取到的是obj对应的对象的内存地址,如果要访问他的属性,就按“对象.属性”的方法。如果要获取User这个对象的name属性。$(user.name),这个其实调用的是user.getName()方法。所以我们的POJO要提供相应的getter,这里才能取到。


    4.EL表达式的逻辑运算操作(与JSTL条件判断标签结合使用)


     ${1==2}
       ${obj1.age>obj2.age  && 1>0}
       ${empty obj.address}${not empty obj.address}
       ${null==obj}
      
       <c:if test="${null==obj}">
               Hello EL!
       </c:if>
    
    

     条件判断主要是用于判断真假,这里要注意一下“empty”。

  • 相关阅读:
    wc
    1.11考试
    diff
    C++11新利器
    vimdiff
    [学习笔记]多项式
    rev
    [AH2017/HNOI2017]礼物
    tr
    bzoj2555: SubString
  • 原文地址:https://www.cnblogs.com/pengyan5945/p/5218367.html
Copyright © 2011-2022 走看看