zoukankan      html  css  js  c++  java
  • EL表达式

    CreateTime--2017年1月7日15:22:16
    Author:Marydon
    EL表达式

    声明:该总结借鉴了他人的经验(非纯原创)
    UpdateTime--2017年1月12日16:22:29
    在EL表达式中我们可以使用运算符以达到我们想要的结果,运算符按作用分为以下几种:
    1.算术运算符
      + 例如:${6+6} 。
      注意:在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现${'a'+'b'}则会出现异常。
      - 例如:${4-3}
      * 例如:${4*3}
      / 例如:${9/3}
    2.关系运算符
      > 或者 gt, 例如:${8>9} 或者 ${8 gt 9 }
      >= 或者 ge, 例如:${4>=9} 或者 ${4 ge 9 }
      < 或者 lt, 例如:${4<9} 或者 ${4 lt 9 }
      <= 或者 le, 例如:${9<=8} 或者 ${9 le 8 }
      == 或者 eq,
        例如:获取后台数据并进行等值比较

    <c:if test="${model.FITEMTYPE == 1}">
        <xyhsoft:toolbar moduleCode="101301" />
    </c:if>
    <c:if test="${model.FITEMTYPE == 0}">
        <xyhsoft:toolbar moduleCode="101302" />
    </c:if>

      != 或者 ne, 例如:${4!=3} 或者 ${4 ne 3 }
    3.逻辑运算符
      && 或者 and, 例如:${false && false} 或者 ${false and false }
      || 或者 or, 例如:${true || false} 或者 ${true or false }
      

    <c:if test="${param.FVISTYPE=='1' or param.FVISTYPE=='12' or param.FVISTYPE=='1,12' }">
      <i:th defW="5%">保障内费用</i:th>
    </c:if>

      ! 或者 not, 例如:${!true} 或者 ${not true},相当于${false}
    4.三元运算符
      ? : 即 ${条件表达式?表达式1:表达式2}
      例如:通过三元运算符取值

    <i:panel title="${model.FITEMTYPE == 1 ? '特殊病种诊疗限制' : '特殊病种用药限制' }"></i:panel>

    5.特殊运算符
      a."empty" 与"not empty"
        判断EL表达式中的表达式是否为空,即:若 user == null || user == "",返回TRUE;否则返回FALSE
        例1:

    <%request.setAttribute("user","");%>
    ${not empty user} <!-- 返回值为false -->

        例2:

    <c:if test="${row['FTYPE']==0}">正常日志</c:if>
    <c:if test="${row['FTYPE']==1}">错误日志</c:if>
    <c:if test="${empty row['FTYPE']}">全部类型日志</c:if>

      b."."
        "." 是我们最常用的,作用相当于执行Bean中的get方法。
        例如:${sessionScope.user.userName}
          意思是:在会话中得到名称为user的Bean对象,通过“.”运算符执行getUserName();方法,返回存放在Bean中的用户名属性的值。
      c."[]"
        []的作用和“.”运算符一样,只不过[]运算符可以执行一些不规则的标识符。
        例1:获取集合的两种方式

    <!-- 方式一:使用"['']" -->
    <c:forEach var="row" items="${model['organizes']}" varStatus="s">
        <tr class="TableRow" oldclass="TableRow" align="center" key="<c:out value="${row['ORGID']}"></c:out>">
            <td nowrap="nowrap" class="TableCell" align="right">
                <c:out value="${row['SORTNO']}"></c:out>
            </td>
            <td nowrap="nowrap" class="TableCell" align="center">
                <!-- 方式二:使用"." -->
                <c:if test="${row.STATUS==1}">启用</c:if>
                <c:if test="${row.STATUS==2}">禁用</c:if>
            </td>
        </tr>
    </c:forEach>

        这两种方式的不同之处在于:
          当需要通过索引号来获取集合中的某个元素时,只能使用"[index]"
          如:        

    <input id="FZJM" name="FZJM" value="${model.data[0].FZJM}" type="hidden"/>

        例2:${requestScope.user["score-math"]},这个表达式中有不规则的标识符,是不能使用“.”来访问的。

    以下内容为原创

    UpdateTime--2017年5月11日08:48:53

     6.EL表达式的两个特征

    <script type="text/javascript">
        window.onload = function () {
            var bb = document.getElementById("aa").getAttribute('test');
    //             if ("" == bb)
    //             alert(bb);
            document.getElementById("cc").innerHTML = bb;    
            var tdValue = document.getElementById("dd").innerHTML;
            if ("" == tdValue)
                alert(tdValue);
        }
    </script>
    <body>
        <!-- 说明el表达式的两个特征:
            1.el表达式取值,为空或不存在时,不报空指针异常;
            2.返回的值是空字符串:""
        -->
         <table id="aa" test="${model }">
            <tr><td id="dd">${model }</td></tr>
         </table>
         <div id="cc"></div>
    </body>
  • 相关阅读:
    ORA-01078:failure in processing system parameters
    pl sql developer登陆界面找不到oracle数据库选项
    PL/SQL Developer 与tnsnames.ora
    查看oracle连接数
    windows路由命令route
    在桌面显示我电脑
    linux 挂载ISO
    scp命令
    ss sp行情
    港股交易最大手数是如何规定的?
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/6524189.html
Copyright © 2011-2022 走看看