JSTL标签库

(1)什么是JSTL

JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!

使用的时候需要自己导包 以及指定标签库

(2)JSTL标签库

JSTL一共包含四大标签库

1. core:核心标签库 (重要)

2. fmt: 格式化标签库 (两个关于日期和数字的)

3. sql:数据库标签库 (过时)

4. xml:xml标签库(过时)

(3)使用taglib指令导入标签库

除了jsp动作标签外 使用其他第三方的标签库都需要

导包

使用标签的jsp页面使用taglib指令导入标签库

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

prefix="c":指定标签库的前缀,这个前缀可以随便定义 大家都会在使用core标签库时指定前缀为c

uri="" :指定标签库的uri

(4)core标签库常用标签

out :向页面输出内容

<c:out value="" default="" escapeXml=""/>

value:可以直接输出字符串 <c:out value="aaa"/>

     可以输出域对象当中的内容 输出域对象当中的内容 结合EL表达式  <c:out value="${a }">  取出域对象当中属性名称为a的值

  default: 当域对象当中指定的属性不存在,那么可以指定默认值。
  escapeXml: 是否带有xml的格式。 默认值true。 原样输出。 false, 解析脚本输出。

set :想域对象当中存属性和属性值

<c:set var="" value="" scope=""/>

var:域对象当中的属性名称。

value: 属性名称对象的属性值。

scope: 指定的域。 默认不指定是page域。 其他值: request session application

remove:从域对象当中移除属性

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

var: 域对象当中的属性的名称。 
scope: 指定从某个域对象当中移除。  如果不指定,默认从整个web域当中移除。

url标签

<c:url value="/" /> 获得当前web应用的名称 并且打印

例如:<form action="<c:url value="/"/>servlet/AServlet">
                 <input type="submit" value="提交">
           </form>

<c: url value="/servlet/ASerevlet"  var ="" scope=""/>

var:域对象当中url地址的名称

将url地址,存放在默认的域当中。默认域是page 

scope: 指定将url的值存放在某个域当中

例如: <c:url value="/servlet/AServlet" var="url" scope="session"/>
           <a href="${url }">提交</a>

作为双标签 :对url的值追加参数 如果追加的参数有中文 可以自动的URL编码

例如

<c:url value="/servlet/AServlet" var="url">
     <c:param name="username" value="liu"></c:param>
     <c:param name="password" value="1223"></c:param>
</c:url>
    <a href="${url }">提交</a>

url标签可以实现URL的重写

if 标签:类似于java的if(){}语句

<c:if test="" >  

          标签体内容。 

 </c:if>
 test: 值必须是boolean。如果返回true, 执行if标签体当中的内容。

choose 标签:

类似于java的if(){} else if(){} else{}

<c:set var="score"value="${param.score }"/>

<c:choose>

    <c:when test="${score > 100 || score < 0}">错误的分数:${score }</c:when>

    <c:when test="${score >= 90 }">A</c:when>

    <c:when test="${score >= 80 }">B</c:when>

    <c:when test="${score >= 70 }">C</c:when>

    <c:when test="${score >= 60 }">D</c:when>

    <c:otherwise>E</c:otherwise>

</c:choose>

foEach 标签

用来计数 类似于传统的for循环

 <c:forEach begin="1" step="1" end="10" var="a">
     ${a }
 </c:forEach>

  begin: 起始位置。
  end:结束位置。
  step:循环增量。 默认是1. 
  var: 变量在域对象当中的名字

遍历 数组

<%
     String [] arr={"a","b","c"};
     pageContext.setAttribute("ns", arr);
%>
    <c:forEach var="item" items="${ns }" varStatus="vs">
              <c:out value="${item }"/>
    </c:forEach>

 var="name" 遍历出来的每个元素。  类似于临时变量
 items="${}" 从域当中获得指定的对象

集合


 varStatus: 带有循环状态的变量。 只能应用在遍历数组和list集合当中。
属性:index 获得元素的索引位置。
       count 获得元素的位置。
       current 获得当前的元素。 
       first: 判断是否是第一个元素。 是第一个元素返回true。
       last: 判断是否是最后一个元素,是最后一个元素就返回true。

<c:forEach var="item"items="${ns }" varStatus="vs">

    <c:if test="${vs.first }">第一行:</c:if>

    <c:if test="${vs.last }">最后一行:</c:if>

    <c:out value="${vs.count }: "/>

    <c:out value="[${vs.index }]: "/>

    <c:out value="name: ${vs.current }"/><br/>

</ c:forEach >

遍历Map集合

<%
     Map<String,String> map=new HashMap<String,String>();
     map.put("name", "lisi");
     map.put("pass", "123");
     map.put("sex", "nan");
     pageContext.setAttribute("map", map);
%>
    <c:forEach var="item" items="${map }">
           <c:out value="${item.key }:${item.value }"/>
    </c:forEach>

(5)fmt标签库常用标签

fmt标签库时用来格式化输出的 通常需要格式化的有时间和数字

导库:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

格式化时间

 <%
     Date d=new Date();
     pageContext.setAttribute("date", d);
 %>
     <fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/>

 value: 从域对象当中获得属性值。 并且输出在页面上。
 pattern  : 指定输出的格式。

格式化数字

<%
      double d1=3.12;
      double d2=3.5;
      pageContext.setAttribute("d1", d1);
      pageContext.setAttribute("d2", d2);
  %>   
     <fmt:formatNumber value="${d1 }" pattern="0.00"/><br/>
     <fmt:formatNumber value="${d2 }" pattern="#.##"/>

 value: 从域对象当中获得属性值。 并且输出在页面上。
 pattern  : 指定输出的格式。

格式:#:代表的是任意数字 如果指定的格式位数多,多余的位数 不用0 补齐

          0:可以代表任意的数字 如果指定的格式位数少 多余的位数使用0补齐

        指定的位数少于输出的数字 采用四舍五入截取












 


















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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值