zoukankan      html  css  js  c++  java
  • Java Web 学习(9) —— EL 与 JSTL

    EL 与 JSTL

    EL与JSTL的作用是为了减少JSP页面中的代码。

    EL

    EL(Expression Language):表达式语言 常用于取值

    语法

    EL 表达式以${开头,以}结束。
    多个表达式可以连接在一起。

    <%-- a + b = 8, c + d = 10--%>
    <%-- 得到 810 --%>
    ${a+b}${c+d}
    

    运算符:

    EL表达式可以返回任意类型的值。如果EL表达式的结果是一个带有属性的对象,则可以利用[]或者.运算符来访问该属性。[]是比较规范的形式,.运算符则比较快捷。

    ${beanName["propertyName"]}
    ${beanName.propertyName}
    

    隐式对象

    pageContext 对象表示当前JSP页面的javax.servlet.jsp.PageContext。它包含了所有其他的JSP隐式对象。

    ${pageContext.request}
    

    applicationScope sessionScope requestScope pageScope 隐式对象用于获取某一范围内的值。默认情况下从小范围依次查找。

    账户:<%= request.getAttribute("account") %><br/>
    密码:<%= request.getAttribute("pwd") %>
    
    <%-- 使用EL表达式取值 --%>
    账户:${ requestScope.account } <br/>
    密码: ${pwd}
    

    JSTL

    JSTL(JavaServer Pages Standard Tag Library):JSP 标准标签库,是一个定值标签库的集合,常用于遍历集合,条件测试,数据操作等。

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

    其中前缀可以任意指定。

    c:out

    out 将结果输出到当前页面。

    <c:out value="${requestScope.name}" default="hello"/>
    

    c:set

    • 将数据放入作用域对象中,默认放入最小作用域
    • 设置有界对象的属性
    <%-- loc = request.location --%>
    <c:set var="loc" value="${requestScope.location}" scope="page" />
    
    <%-- loc 的 city 属性设置为 Harbin --%>
    <c:set target="${loc}" property="city" value="Harbin" />
    <c:set target="${loc}" property="city">Harbin</c:set>
    

    c:remove

    删除有界变量

    <c:remove var="loc" scope="page" />
    

    c:if

    条件测试,并将结果保存在有界变量中。

    <c:if test="${loc.city == 'Harbin'}" var="flag">
        Hey
    </c:if>
    ${flag ? "Welcome to Harbin" : "Welcome"}
    

    c:choose c:when c:otherwise

    类似与 switch case default

    <c:choose>
        <c:when test="${loc.city == 'Harbin' }">Welcome to Harbin</c:when>
        <c:when test="${loc.city == 'Dalian' }">Welcome to Dalian</c:when>
        <c:otherwise>Welcome</c:otherwise>
    </c:choose>
    

    c:forEach

    <%-- 固定次数重复 --%>
    <c:forEach var="x" begin="2" end="10" step="2">${x} </c:forEach>
    
    <%-- 集合对象遍历 --%>
    <c:forEach var="location" items="${locations}" varStatus="status">
        <c:if test="${status.first}">begin<br/></c:if>
        ${status.count} ${location.city }<br/>
        <c:if test="${status.last}">fin<br/></c:if>
    </c:forEach>
    
    属性 说明
    begin 开始
    end 结束
    step 步长 默认1
    varStatus 状态
    varStatus.first 是否为第一个
    varStatus.last 否为最后一个
    varStatus.index 索引值(从1开始)
    varStatus.count 循环次数

    c:forTokens

    遍历以特定分隔符分开的标识符

    <c:forTokens items="this is a test" delims=" " var="word">${word}<br/></c:forTokens>
    
  • 相关阅读:
    IntellJ IDEA快捷键
    【Java基础】Java 增强型的for循环 for each
    Markdown简易入门
    kafka性能调优
    百度地图 libBaiduMapSDK_base_v4_2_1.so" is 32-bit instead of 64-bit错误
    centos7防火墙firewalld拒绝某ip或者某ip段访问服务器任何服务
    华为策略路由配置
    Windows Server 2012 R2 英文版安装中文语言包教程更改为中文版
    linux修改网卡名为eth0
    华为路由配置IPSec
  • 原文地址:https://www.cnblogs.com/JL916/p/11914247.html
Copyright © 2011-2022 走看看