EL表达式和JSTL标签库

EL表达式:

1.基本格式:${}   

2.4种取值范围:pageScoperequestScopesessionScopeapplicationScope

   ${requestScope.user.name}

3.基本运算:.[]  .用于取属性[]用于取ArrayListMapSet

   ${requestScope.map['apple']},${requestScope.list[1]}

4.{}里允许的运算:算术运算,关系运算,逻辑运算,empty/not empty空判断

   ${1+1}

   ${user.age<18}

   ${(user.age>18)&&(user.sex=='')} 

   ${empty user}判断user对象是否为空

5.EL11个隐含对象

   pageContext,paramparamValues,headerheaderValuescookie,initParam4种取值范围对象

    *pageContext可获取jsprequest,response,out,session,config,servletContext等对象

       ${pageContext.session.uesr}

    header

       ${header.host}

    *cookie

       ${cookie.key}

================================================================================JSTL标签库:

   1.核心标签库

        a.JSTL表达式标签

        b.条件标签

        c.循环标签

        d.URL操作标签

   2.格式标签库(处理国际化,数字和日期格式)

   3.SQL标签库(可以访问数据库)

   4.XML标签库(可操作XML标记)

   5.函数标签库(主要是字符串操作函数)

------------------------------------------------------------

需要掌握的JSTL核心库常用标签:

引入:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

   1.JSTL表达式标签:

      <c:out value="${1+1}" default="0"></c:out>

      输出

           属性:value--表示要显示的值;可以是字符串,也可以是EL表达式

                 escapeXml--是否转换特殊字符[默认是true]

                 default--value中的对象空时的默认显示

      <c:set var="" value="" target="" property="" scope=""></c:set>

      变量赋值

           属性:var--变量名

                 value--

                 target--目标对象,可以是javaBean,集合对象

                 property--指定到目标对象的属性

                 scope--变量的作用范围[page(默认),request,session,application]

     <c:remove var=""></c:remove>

     移除变量

     <c:catsh></c:catch>

     捕获异常

           属性:var--变量,用于存储异常信息

     2.条件表达式标签:

        <c:if test=""></c:if>

        条件判断        

            属性:test--条件表达式

                  var--变量表示条件表达式的值

                  scope--变量范围

         <c:choose>

             <c:when test="">第一种情况</c:when>

             <c:when test="">第二种情况</c:when>

             .....

             <c:otherwise>其他情况</c:otherwise>

         </c:choose>

      3.循环标签:

         <c:forEach></c:forEach>

         循环

             属性:items--循环类型

                   var--循环变量

                   begin--循环起始位置(0算起)

                   end--循环结束位置

                   sep--每次循环的步长

                   varStatus--循环状态[索引:index,计数:count,是否是首次循环:first ,是否是末次循环:last]

        <c:forTokens></c:forTokens>

        字符串分割循环

             属性:iterms--循环对象

                   delims--分割字符

                   var--循环变量

                   begin,end,step,varStatusforEach标签

      4.URL操作标签:

          <c:import url=""></c:import>

          文件导入

              属性:url--被导入资源的路径

                    charEncoding--被导入文件的编码格式

              说明:该标签不仅可导入本站的静态文件还可导入不同站点的资源文件

          <c:redirect url=""></c:redirect>

          重定向

          <c:url></c:url>

          生成url地址标签

实验代码:

………………………………………………………………………………………………

    Hello JSTL标签: <br>

    <h2>表达式标签</h2>

    <c:out value="1+1"/><br>

    <c:out value="${1+1}"/><br>

    <c:out value="${user}" default="显示默认值" /><br>

     <c:out value="${user}">显示默认值</c:out><br>

     

     

    <c:set var="name" value="设置变量"></c:set>

    <c:out value="${name}"></c:out><br>

    

    

    <c:set var="age" value="22"></c:set>

    <c:remove var="age"/>

    <c:out value="${age}" default="被移除了"></c:out><br>

    

    

    <c:catch var="exception">

       <%

         int s=8/0;

       %>

    </c:catch>

    <c:out value="异常是:${exception}"></c:out>

    

    <h2>条件标签</h2>

    <c:if test="${empty user}">

         user是空对象<br>

    </c:if>

    <c:if test="${1+1==2}" var="v">

       1+1=2

    </c:if><br>

    <c:out value="条件是:${v}"></c:out><br>

    

    <c:set var="i" value="9"></c:set>

    <c:choose>

      <c:when test="${i<5}">

          i小于5

      </c:when>

      <c:when test="${i>5}">

          i大于5          

      </c:when>

      <c:otherwise>

          i等于5

      </c:otherwise>

    </c:choose>

    

    <h2>循环标签</h2>

    <%

        List list=new ArrayList();

        list.add("list1");

        list.add("list2");

        list.add("list3");

        list.add("list4");

        list.add("list5");

        list.add("list6");

        

        request.setAttribute("list",list);

    %>

    

    <c:out value="${list}"></c:out><br>

    <c:forEach items="${list}" var="ite">

       ${ite} >>

    </c:forEach><br>

    

    <c:forEach items="${list}" begin="3" end="5" var="ite">

       ${ite }>>

    </c:forEach><br>

    

    <c:forEach items="${list}" begin="0" step="2" var="ite">

       ${ite }>>

    </c:forEach><br>

    

    <c:forEach items="${list}" var="ite" varStatus="status">

       值:${ite }|索引:${status.index }|当前循环计数:${status.count }|是否为第一次循环:${status.first }

       |是否为最后一次循环:${status.last }<br>

    </c:forEach>

    

    <c:set var="string" value="古都,雪国,千只鹤,山音,湖;伊豆的舞女"></c:set>

    <c:forTokens items="${string}" delims=",;" var="ite">

      ${ite }>>

    </c:forTokens>

    

    <h2>URL操作标签</h2>

    <!--  

    <c:import url="http://www.baidu.com" var="baidu">

    </c:import>

    -->

 

     <iframe src="http://m.weather.com.cn/m/pn12/weather.htm " width="245" height="110" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>

…………………………………………………………………………………………………

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值