EL表达式的用法

Posted listener-wy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式的用法相关的知识,希望对你有一定的参考价值。

EL表达式必须依赖于JSP才能生存下去

  作用:减少<%%>(java代码)在页面上的显示,利于代码的维护

  EL的基本语法:

    往浏览器中输出内容

      ${1}

      ${“11”}

      ${‘111’}

       算术运算符

    ${4+1}

    ${4-1}

    ${4*1}

    ${4/1}

      注意:EL表达式中的+号没有拼接作用

      <%=1+2+”3”%>

      ${1+2+”3”}

      <%=1+2+”a”%>

      ${1+2+”a”}

       关系运算符

      ${1>8}

       逻辑运算符

      ${1==1 && 1<3}

      //逻辑运算符的特殊写法

      ${true && false}  -- ${true and false}

      ${true || false}  -- ${true or false}

      ${!true} -- ${not true}

       empty关键字:判断是否为null

      ${empty “”}<br>

      ${empty null}<br>

   eq关键字

      ${“aa” eq “aa”}

   EL表达式的取值问题

      EL表达式只能从四大作用域中取数据(pageContext,requset,session,application),目前只讲requset

         <%

       int a = 100;

     %>

      ${a/2}

      取值不到,因为EL表达式只能从JSP的四大作用域当中获取变量

      <%

        int a = 100;

        request.setAttribute(“wy”,a);

      %>

        ${wy/2}

    注意:EL表达式不能调用方法

JSTL核心标签库

  使用步骤:

    1.在页面的顶部导入标签库

      taglib::标签库

      uri:链接

        提示:URL与RUI的区别

          如:

          URL:  http://zhidao.baidu.com/question/68016373.html

          RUI:     /question/68016373.html

      prefix:前缀,一般使用c

    2.在页面上使用c标签

      <c:out value=””></c:out> //输出,可以防止JS代码执行

        等同于    ${“aaa”}

      例:

        <c:out value=”<script>alert(‘攻击脚本’);</script>”></c:out>

        ${“<script>alert(‘攻击脚本’);</script>”}

 

      <c:set var=”” value=”” scope=””><c:set> //在JSP页面上定义变量

      例:

        <c:set var=”name” value=”李四” scope=”page”><c:set>

        等同于  pageContext.setAttribute(“name”,”李四”);

 

    <c:if test=””></c:if> //if逻辑判断

      例:

        <c:set var=”sex” value=”男”></c:set>

        <c:if test=”${sex == ‘男’}”>

          男人

        </c:if>

        <c:if test=”${sex eq ‘女’}”>

          女人

        </c:if>

      注意: c:if 标签没有else标签

 

    <c:choose></c:choose>         //switch

    <c:when test=””></c:when>      //case

    <c:otherwise></c:otherwise>      //default

     例:

      <c:set var=”sex” value=”男”></c:set>

      <c:when test=”${sex == ‘男’}”>

        男人

      </c:when>

      <c:when test=”${sex eq ‘女’}”>

        女人

      </c:when>

      <c:otherwise”>

        妖

      </c:otherwise>

 

    <c:forEach var=”” items=”” varStatus=””></c:forEach>

      var:数据组当中的每个元素

      items:数组的名称(必须使用EL表达式)

      varStatus:数组的信息 如:varStatus = vs

      vs.index 循环的索引

      vs.count 循环的次数

      vs.first 是否是第一个

      vs.last 是否是最后一个

      例:

      <%

        String [] arr = {“男人”,”女人”,”妖怪”};

        pageContext.setAttribute(“arr”,arr);

      %>

      <c:forEach var=”e” items=”${arr}” varStatus=”vs”>

        ${e}--${vs.index}--${vs.count}--${vs.first}--${vs.last}

      </c:forEach>

      注意:JSP页面中表单单行变色的问题

        <c:forEach items="${list}" var="u" varStatus="vs">

          <tr bgcolor="${vs.count%2 == 0 ? "red":"blue"}">

            <td>${u.id}</td>

            <td>${u.name}</td>

          </tr>

        </c:forEach>

以上是关于EL表达式的用法的主要内容,如果未能解决你的问题,请参考以下文章

JSP中的JSTL与EL表达式用法及区别

EL表达式的用法

JSP 中EL表达式用法详解

JSP 中EL表达式用法详解

JSP 中EL表达式用法详解

el 表达式用法(转)