zoukankan      html  css  js  c++  java
  • JavaWeb 之 EL与JSTL

    EL表达式

    1. 概念:Expression Language 表达式语言
    2. 作用:替换和简化jsp页面中的java代码的编写
    3. 语法${表达式}
    4. 注意:
      • jsp默认支持el表达式。如果要忽略el表达式
        1. 设置jsp中page指令中:isELIgnored=“true”忽略当前jsp页面中所有的el表达式
        2. ${表达式}:忽略当前这个el表达式
    5. 使用:
      1. 运算

        • 运算符
          1. 算数运算符:+ - * /(div) %(mod)
          2. 比较运算符:> < >= <= == !=
          3. 逻辑运算符:&&(and) ||(or) !(not)
          4. 空运算符:empty
            • 功能:用于判断字符串,集合,数组对象是否为null并且长度是否为0
            • ${empty list}:用于判断字符串,集合,数组对象是否为null并且判断长度是否为0
            • ${not empty str}:表示判断字符串、集合、数组对象是否不为null,并且长度>0
      2. 获取值

        1. el表达式只能从域对象中获取值
        2. 语法
          1. ${域名称.键名}:从指定域中获取指定键的值
            • 域名称:
              1. pageScope --> pageContext
              2. requestScope -->request
              3. sessionScope -->session
              4. applicationScope -->application(ServletContext)
            • 举例:在request域中存储了name=张三
            • 获取:${requestScope.name}
          2. ${键名}:标识依次从最小的域中查找是否有该键对应的值,直到找到为止
            • ${name}
        3. 获取对象、List集合、Map集合的值
          • 对象:${域名称.键名称.属性名}
            • 本质上会去调用对象的getter方法
          • List集合:${域名称.键名[索引]}
          • Map集合:
            1. ${域名称.键名.key名称}
            2. ${域名称.键名[“key名称”]}
      3. 隐式对象

        • el表达式中有11个隐式对象

        • pageContext

          1. 获取jsp其他八个内置对象
            • ${pageContext.request.contextPath}:动态获取虚拟目录

    JSTL

    1. 概念 :JavaServer Pages Tag Library JSP标准库

      • 是由Apache组织提供的开源免费的jsp标签
    2. 作用:用于简化和替换jsp页面上的java代码

    3. 使用步骤

      1. 导入jstl相关的jar包
      2. 引入标签库:taglib指令:<% taglib %>
      3. 使用标签
    4. 常用的JSTL标签

      1. if :相当于java代码的if语句

        <% taglib prefix="c" uri="http://java.sun.com/jsp/jstl1/core"%>
        
        <c:if test="xxx">
        <h1>hello</h1>
        </c:if>
        /*
        1. 属性
        	* test必须属性,接收boolean表达式,正确则执行,不正确不执行
        	* 一般情况下,test属性值会结合el表达式一起用
        */
        
        
      2. choose:相当于java代码的switch语句

        <% taglib prefix="c" uri="http://java.sun.com/jsp/jstl1/core"%>
        <%--
         完成数字编号对应星期几案例
            1.域中存储一数字
            2.使用choose标签取出数字        相当于switch声明
            3.使用when标签做数字判断         相当于case
            4.otherwise标签做其他情况的声明    相当于default
         --%>
        
        <%
        request.setAttribute("number",3);
        %>
        
        <c:choose>
            <C:when test="${number == 1}">星期一</c:when>
        	 <C:when test="${number == 2}">星期二</c:when>
             <C:when test="${number ==3}">星期三</c:when>
             <C:when test="${number == 4}">星期四</c:when>
        	 <C:when test="${number == 5}">星期五</c:when>
             <C:when test="${number == 6}">星期六</c:when>
              <C:when test="${number == 7}">星期日</c:when>
            
            <c:otherwise>数字输入有误</c:otherwise>
        </c:choose>
        
      3. foreach:相当于java代码的for语句

        <% taglib prefix="c" uri="http://java.sun.com/jsp/jstl1/core"%>
        <%--
        foreach:相当于java代码的for语句
            1.完成重复的操作
            2.遍历容器
            
        1.完成重复操作    
         属性:
            begin:开始值
            end:结束值
            var:临时变量
            step:步长
            varstatus:循环状态对象
                index:元素中元素的索引,从0开始
                count:循环次数,从1开始
                
        2.遍历容器
          属性:
             items:容器对象
             var:容器元素中的临时变量
              varstatus:循环状态对象
                index:元素中元素的索引,从0开始
                count:循环次数,从1开始
        --%>
        //完成重复操作
        <c:foreach begin = "1" end = "10" var = "i" step = "1">
            ${s.index}  ${s.count}
        </c:foreach>
        //遍历容器
        <c:foreach items = "${list}" var="str" varStatus = "s">
            ${s.index}  ${s.count}  ${s.str}
        </c:foreach>
        
        
  • 相关阅读:
    自古逢秋悲寂寥,奈何今秋热成雕?Python使用Pyecharts统计全国温度Top10并绘图
    Python爬虫帮你打包下载所有抖音好听的背景音乐,还不快收藏一起听歌
    补习系列(1)-springboot项目基础搭建课
    华为云OCR文字识别 免费在线体验!
    Python开发还在用virtualenv?不如了解下pipenv...#华为云·寻找黑马程序员#
    大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作
    八分音符(频率)卷积算子 Octave Convolution
    补习系列-springboot-使用assembly进行项目打包
    Vue中拆分视图层代码的5点建议
    线上一个数组查询遇到的坑
  • 原文地址:https://www.cnblogs.com/cjdstudy/p/12839769.html
Copyright © 2011-2022 走看看