zoukankan      html  css  js  c++  java
  • 我爱Java系列---【EL和JSTL】

    一、EL表达式

    作用:主要就是用来代替JSP中的 <%= %> 这个标签的,他可以简单的用于输出语句

        1.输出四大域对象中的内容 ${key} 这样就可以全域查找到四大域对象中的key变量 如果key是一个对象的话,我们希望获取这个对象里面的某个get方法的返回值,我们只需要key.key1 key1就是getKey1()这个方法的返回值。

            <!-- 域对象获取值 -->
            <%=application.getAttribute("sc_key")%>
            <%=session.getAttribute("ss_key")%>
            <%=request.getAttribute("req_key")%>


            <!-- el 的取值方式 -->
            ${applicationScope.sc_key}
            ${sessionScope.ss_key}
            ${requestScope.req_key}

             <!-- el 的简化方式 ,只写key ,没有对象 -->

            ${sc_key}

            ${ss_key}
            ${req_key}

       <div>

        ${userMap.u1} <%-- 简单 --%>
        ${userMap['u.1']} <%-- 通用--%>//加单引号的作用:防止出现${userMap.u.1}的格式,出现无法正常解析的现象。
        ${userMap.u1.name} <%-- 简单 --%>
        ${userMap['u1'].age} <%-- 通用--%>
       </div>

        2.精确的四大域对象查找

          ${pageScope.key}

          ${requestScope.key}

          ${sessionScope.key}

          ${applicationScope.key}

        3.其他7个内置对象

    • param
    • paramValue
    • header
    • headerValue
    • cookie
    • pageContext 他可以获取其他所有的10个对象,因为它里面有其他十个对象的get方法
    <!-- 在当前jsp页面引入header.jsp -->
    <jsp:include page="/header.jsp"></jsp:include>

    <!-- 在当前jsp页面引入footer.jsp -->
    <jsp:include page="/footer.jsp"></jsp:include>

    二、JSTL

           JSTL是EL的扩展,因为EL只是进行输出而已,但是有一些判断,遍历等等,这些操作就是JSTL。他需要引入jstl.jar 他有四大库,但是常用的只有两个一个是core另外一个就是formate标签库注意导入的时候uri是jsp/core 或者 jsp/formate。

    2

    使用之前先安装JSTL标签:

    jar包百度云链接:

    链接:https://pan.baidu.com/s/1IfbXVlofkpYE869Unn12Vw
    提取码:d4is

    jstl标签的安装步骤:

                                     a.导入jar包
                                     b.使用taglib指令在jsp页面导入要使用的jstl标签库,<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。
                                     c.在jsp书写"<c:"< span="">,看到如下提示,说明安装成功:
    1.core标签库(c标签)
    • out 输出标签 value就是要输出的变量
    • set 设置某个变量的值 var变量名 value变量值
    • url url格式化的标签 value 自动添加上项目名 里面如果加param标签那么就可以传递参数 name/value
    • remove 删除域变量 var变量名 scope域范围,不写的话删除全域的对象中的此值
    • if if语句 test 判断的条件 ${not empty key} 如果key不是空
    • forEach
      • 计数方式 var循环变量 begin循环变量从几开始 end到几结束 step设置步长
      • 用来遍历 items需要迭代的变量 var每一次迭代的变量
    • choose/when 多分支

    <c:choose> <c:when test></c:when> <c:when test></c:when> <c:when test></c:when> <c:when test></c:when> </c:choose>

    if if语句 test 判断的条件 ${not empty key} 如果key不是空

    <div>
    <!-- 获取 num 值 , 判断并显示 内容 -->

    <c:if test="${num%2==0}">
    <font color="green"> 韭菜 </font>
    </c:if>

    <c:if test="${num%2!=0}">
    <font color="red"> 苹果 </font>
    </c:if>

    </div>

    普通for循环:计数方式 var循环变量 begin循环变量从几开始 end到几结束 step设置步长

    <div>
    <!-- 遍历 num 值 -->
    <c:forEach var="i" begin="0" end="${num}" step="1" >
    ${i} <br>
    </c:forEach>

     </div>

    增强for:用来遍历 items需要迭代的变量 var每一次迭代的变量

    <div>
    <!-- 遍历 集合 值 <String> -->
    <c:forEach var="s" items="${l}" >
    ${s} <br>
    </c:forEach>

    <%--<!-- 遍历 集合 值 <User> -->--%>
    <%--<c:forEach var="u" items="${l2}" >--%>
    <%--${u.name} <br>--%>
    <%--</c:forEach>--%>

    <hr />


    <!-- 遍历 集合 值 <User> ,加入 序号 -->
    <c:forEach var="u" items="${l2}" varStatus="vs" >
    ${vs.count} -- ${u.name} <br>
    </c:forEach>
    </div>

    2.formate标签库
    • formateDate value需要格式化的变量 pattern yyyy-MM-dd HH:mm:ss
    • formateNumber value变量 pattern 0.00 需要小数点两位 四舍五入
    愿你走出半生,归来仍是少年!
  • 相关阅读:
    C++-蓝桥杯-大臣的旅费[dfs][树的直径]
    C++-蓝桥杯-剪格子-[2013真题][爆搜?]
    微信公众平台运营指导
    ALGO-84 大小写转换
    ALGO-84 矩阵乘法
    ALGO-49 寻找数组中最大值
    ALGO-92 前缀表达式
    ALO-42 送分啦
    ALGO-90 出现次数最多的整数
    【微信】公众号群发相关使用
  • 原文地址:https://www.cnblogs.com/hujunwei/p/10951712.html
Copyright © 2011-2022 走看看