笔记:EL & JSTL

1.EL表达式:

        EL(Expression Language)表达式语言,是包含在JAVA EE平台上的一种技术,简单的语言,提供了在 JSP 中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。

特点:自动转换类型  、  使用简单

基本语法  ${}

  • 通过变量名获取对应的值   ${变量}
  • 获取对象的属性值  ${对象名.属性名}
  • 获取集合元素 
    ${ 对象名.size() }  //调用方法
    ${ 对象名[索引] }  //获取集合中索引的值
    ${ map集合对象名["key"] }  //获取到map集合中key所对应的value值
  • 执行表达式
    算数运算符:+  -  *  /  %
    逻辑运算符:&& (and)     || (or)      ! (not)
    关系运算符:>(gt)   <(lt)   >=(ge)   <=(le)   ==(eq)   !=(ne)
    empty运算符:empty:判断元素是否为空或是否包含元素
    not empty: 判断元素是否不为null或者是否不包含元素

获取作用域中的内容以及参数的内容和页面的内容


  •  作用域访问对象:
    正常情况下,在使用 EL表达式时,需要在表达式中添加对应的作用域, 如果我没有书写作用域访 问对象,此时, EL 表达式就会从 page requet 中查询,如果 request 没有对应的值就会找到 session 查询, session 如果范围内也没有,就会 最后找到 application ,如果几个作用域都不包含 要查找的值或对象,就会返回 null 状态。此时如 果我们调用某个对象的某个属性或方法,此时 EL 表达式如果没有找到对象就会直接输出空白。
  • 参数访问对象:
    param 相当于是在页面中调用了 request.getParameter(" ")来获取参数中的内容。paramValues相当于在页面中调用了 request.getParameterValues(" ")来获取同名对象的多个值,返回一个数组类型。
     
  • JSP隐式对象:
    可以通过 pageContext 对象获取到该对象中的某个值,同时还可以获取到页面中衍生出的各类内置对象,例如可以通过pageContext.request.contextPath获取到当前项目的上下文路径。

 2. JSTL (Java Server Page Standard Tag Library)

        JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,为了能够提高JAVA WEB开发的效率以及维护性。就是配合EL表达式取代在jsp页面嵌入java代码,好处是提高程序的阅读性、维护性和方便性,在JSTL中提供了多套标签库,用于方便简化jsp。

JSTL 中包括两种常用标签库内容:
  • 核心标签:
    核心标签库是整个 JSTL 中最常用的部分,主要由以下几部分组成:基本输入输出、流
    程控制、迭代操作和 URL 操作。负责 Web 应用的常见工作,如:循环、表达式赋值、基本输入输出等。
  • I18N 格式标签库:用来格式化显示数据的工作。如:对不同区域的日期格式化等。

2.1 核心标签库:

  1. 操作域对象标签:

    set:
    <c:set>向域中放入对象,setAttribute
    <c:out>从域中取出对象 getAttribute
    <c:remove> 从域中移除对象 removeAttribute
    <c:set var="变量名"  value=""  scope="request/session/application" />

    out:
    <c:set target="${要修改的对象}" property="要修改的对象中的性value="修改的属性值" />

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

     
  2. 条件标签:

    if标签:
    <c:if test="条件表达式"></c:if>
    choose标签:
    <choose>
           <c:when 
    test="条件表达式"></c:when>
           ......
           <c:otherwise></c:otherwise>
    </choose>


     
  3. 循环条件:
     
    <c:forEach  var = " 循环时的变量 " items = " 集合 | 数组 begin = " 起始值 end = " step = " 迭代步长 " varStatus = " 循环属性变量 " ></c:forEach>

    //遍历集合
    <c:forEach  var = "str"  items = "${strings}" >
           
    ${str}
    </c:forEach>

    //按普通的值遍历
    <c:forEach  var = "i" begin = "0"  end = "10"  step = "1" >
           <a 
    href = "#" > ${i} </a>
    </c:forEach>


    // 遍历 map集合
    <c:forEach  var = "m"  items = "${map}" >
           
    ${m.key}---${m.value}
    </c:forEach>

    // 获取 varStatus中的变量内容
    <c:forEach  var = "str"  items = "${strings}"  varStatus = "status" >
          
    ${status.last}
    </c:forEach>  

2.2  格式化

数字格式化:

<fmt:formatNumber value="12" type="currency" pattern="$.00"/>  $12.00

<fmt:formatNumber value="12" type="currency" pattern="$.#"/> $12.0


<fmt:formatNumber value="123456.7891" pattern="#0.00"/>  123456.79

<fmt:formatNumber value="123456.7891" pattern="#,#00.00"/> 123,456.79

<fmt:formatNumber value="0.7891" pattern="#.00"/>  0.79
 
<fmt:formatNumber value="0.1234" type="percent" pattern="#0.00%"/> 12.34%

<fmt:formatNumber value="12" type="percent"  /> 1,200%

<fmt:formatNumber value="12" type="percent" pattern="#0.00%"/> 1200.00%

日期格式化:

<fmt:formatDate value="${date}" type="both"/>  输出格式: 2010-5-31 23:59:59

<fmt:formatDate value="${date}" type="date"/> 输出格式: 2010-4-1

<fmt:formatDate value="${date}" type="time"/> 输出格式: 23:59:59

<fmt:formatDate value="${date}" type="date" dateStyle="default"/>  输出格式:2010-5-31

<fmt:formatDate value="${date}" type="date" dateStyle="short"/> 输出格式:04-5-31

<fmt:formatDate value="${date}" type="date" dateStyle="medium"/>  输出格式:2010-5-31

<fmt:formatDate value="${date}" type="date" dateStyle="long"/> 输出格式: 2010年5月31日

<fmt:formatDate value="${date}" type="date" dateStyle="full"/> 输出格式:2010年5月31日 星期一

<fmt:formatDate value="${date}" type="time" timeStyle="default"/> 输出格式: 23:59:59

<fmt:formatDate value="${date}" type="time" timeStyle="short"/> 输出格式:下午11:59

<fmt:formatDate value="${date}" type="time" timeStyle="medium"/> 输出格式: 23:59:59

<fmt:formatDate value="${date}" type="time" timeStyle="long"/> 输出格式: 下午11时59分59秒

<fmt:formatDate value="${date}" type="time" timeStyle="full"/> 
输出格式: 下午11时59分59秒 CDT

<fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy 输出格式: HH:mm:ss Z"/>  星期四, 四月 1, 2010 13:30:00 -0600

<fmt:formatDate value="${date}" type="both" pattern="d MMM yy, h:m:s a zzzz/>
输出格式: 31 五月 04, 11:59:59 下午 中央夏令时

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值