zoukankan      html  css  js  c++  java
  • el和jstl

    el表达式:
    jsp内置的表达式语言
    作用:代替脚本

    脚本: <%%>
    <%=%>
    <%!%>

    1、获取域中的数据:${域中的key值}

    简单数据:${域中的key值}

    注意:如果多个域中的key值一样 那么取出的顺序?
    从范围小的开始查找,查找到以后就返回

    如果没有查询到对应的key 返回""(空字符串)
    根据域值取出数据

    <%
    pageContext.setAttribute("num", 5);
    request.setAttribute("num", 1);
    session.setAttribute("num", 0);
    application.setAttribute("num", 2);
    %>

    <p>${ requestScope.num}</p>
    <p>${ sessionScope.num}</p>
    <p>${ applicationScope.num}</p>
    <p>${ num}</p>

    复杂数据:
    数组:
    ${域中的key值[index]}
    list:
    ${域中的key值[index]}
    map:
    正常:
    ${域中的key值.map中的key}
    如果map的是特殊(数字等):
    ${域中的key值["key"]}

    javaBean导航:
    javaBean:我们编写的一个普通java类:
    类似:User,Person……

    javaBean规范:
    1、必须是一个共有的类
    2、提供私有字段
    3、必须提供私有字段公共的getset方法(boolean :is)
    4、必须提供无参构造
    5、一般来说需要实现Serializable接口(序列化)

    javaBean一般都存放在bean,domain,entity

    ${域中的key值.javabean属性}

    javabean属性:就将get或set方法去掉头(set,get) 然后将首字母小写

    2、el表达式的内置对象:pageContext
    ${ pageContext.request.contextPath} <!--获取项目的根路径-->
    ${pageContext.request.requestURI}<!-- 请求的url -->
    ${pageContext.request.queryString}<!-- 获取查询参数-->
    ${pageContext.request.method}<!-- 请求方式-->
    ${pageContext.request.protocol}<!-- http协议-->
    ${pageContext.request.serverName}<!-- 服务器名字-->

    3、el中的保留字段
    and eq gt div
    or ne le mod
    no lt ge true
    instanceof empty null false

    4、el执行运算
    运算符:算数,关系,逻辑

    算数:
    +:只能进行加法,不能实现拼接
    /:div
    %:mod
    关系:

    > 或者 gt, 例如:${8>9} ?或者 ${8 gt 9 }


    >= 或者 ge,?例如:${45>=9}?或者?${45 ge 9 }


    < 或者 lt,?例如:${4<9}?或者?${4 lt 9 }


    <= 或者 le,?例如:${9<=8}?或者?${9 le 8 }


    == 或者 eq,?例如:${4==4}?或者?${4 eq 4 }


    != 或者 ne,?例如:${4!=3}?或者?${4 ne 3 }

    逻辑:

    && 或者 and, 例如:${false && false} 或者 ${false and false }


    || 或者 or, 例如:${true || false} 或者?${true or false }


    ! 或者 not,例如:${!true}(相当于${false}) 或者?${not true }

    empty:判断容器的长度是否为0
    判断对象是否为空
    <%

    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);
    User user = null;
    request.setAttribute("user", user);
    request.setAttribute("list", list);
    %>


    ${ empty list}
    ${ empty user}

    jstl:
    jsp标准的标签库语言
    公司:apache 开源免费
    作用:用来代替脚本

    jstl标签库的分类:
    核心标签:Core(掌握)
    格式化标签:fmt(了解)
    函数标签:fn(了解)
    xml:(不用)
    sql:(不用)

    导入格式:taglib:导入标签库
    <%@ taglib prefix="",uri="" %>
    prefix:前缀(一个命名)
    uri:标签路径

    core:
    if:条件判断
    <c:if test="${ 1==1}" var="result" scope=""></c:if>
    test:条件表达式(${})
    var:接收条件表达式的结果
    scope:var变量的作用范围

    例如:
    <c:if test="${ 1==1}" var="result" >
    ${result}
    1 等于 1
    </c:if>

    类似switch功能:

    <c:choose>
    <c:when test=""></c:when>
    <c:otherwise></c:otherwise>
    </c:choose>

    choose:switch
    when:case
    otherwise:defalut
    例如:
    <c:choose>
    <c:when test="${3>4}">
    3>4
    </c:when>
    <c:when test="${3<4}">
    3<4
    </c:when>
    <c:otherwise>
    3 = 4
    </c:otherwise>
    </c:choose>

    循环:<c:foreach>
    <!-- begin:开始
    end:结束
    step:递增值
    items:要遍历的对象
    var:遍历结果
    varStatus:循环状态-----count:当前执行的次数
    对象:
    index:
    count:
    first:
    last:-->
    <c:forEach begin="5" end="10" step="1" var="i" varStatus="vs">
    ${vs.index}<br>
    ${vs.count}<br>
    ${vs.first}<br>
    ${vs.last}<br>

    变量值: ${i}<br>
    </c:forEach>

    遍历对象:

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

    变量值:${user.age} <br>
    变量值:${user.userName} <br>
    变量值:${user.gender} <br>
    </c:forEach>

    了解
    <c:out>:<%=%> 输出
    <c:set>:向域中设置值
    例如:<c:set value="abc" var="msg" scope="request"></c:set>
    value:值
    var:key
    scope:域

    fn:函数标签
    <c:set value="abc" var="msg" scope="request" ></c:set>

    ${fn:toUpperCase(msg)}

    ${fn:contains("aaabc","aaa" )}

    fmt:格式化
    <c:set var="now" value="<%=new Date()%>" scope="request"></c:set>

    <p> <fmt:formatDate value="${now}" type="both"></fmt:formatDate></p>

  • 相关阅读:
    有几个点会导致插件包不出现
    JScrollPane恢复正常滚动量
    java jlabel 对齐_java将JLabel中的文本右对齐
    SVN的安装和使用手册
    idea生成类注释和方法注释的正确方法
    关于RCP中英文的一些总结
    精通Hibernate类与类关联关系:[一]建立多对一的单向关联关系
    Hibernate笔记=>继承关系的映射[转 王继彬]
    Unity(六):使用场景Ⅲ:用于依赖注入(上)
    NHibernate之旅(13):初探立即加载机制[转 Blog 李永京]
  • 原文地址:https://www.cnblogs.com/lyhhary/p/asdasd.html
Copyright © 2011-2022 走看看