Day10_24——JSTL

JSTL

1.jstl的概述

  • apache公司提供的,依赖EL
  • 使用jstl需要导入jstl1.2.jar
  • jstl标签库——四大库

core:核心标签库(重点)
fmt:格式化标签库
sql:数据库标签库(过时)
xml:xml标签库(过时)
2.导入标签库

  • jar包
  • 在jsp页面中:<%@taglib prefix=”前缀” uri=”路径”%>
    3.core标签库常用标签(c标签)
    (1)out和set
  • <c:out > - - - - 输出aaa字符串常量

value:可以是字符串常量,也可以是EL表达式
default:当要输出的内容为null时,会输出default里面指定的值
escapeXml:默认值为true,表示转义
<%
request.setAttribute("code", "<script>alert();</script>;");
%>
<c:out value="${code}"></c:out>

* <c:set>:设置(创建域的属性)

var:变量名
value:变量值,可以时EL表达式
scope:域,默认式page,可以选择其他域

<c:set var="code" value="<script>alert('hello')</script>;"></c:set>
<c:out value="${code}" escapeXml="ture"></c:out>
(2)remove

  • <remove>:删除域变量

var:变量名
scope:如果不给出scope,表示删除所有域中的该名称变量,如果指定了域,那么就只删除该域中的变量

(3)Url

  • value:指定一个路径,它会在路径前面自动添加项目名。
  • <c:url value=”/index.jsp”/>,它会输出/JSTL/index.jsp
  • 子标签:<c:param>,用来给url后面添加参数,例如:
<c:url value=”/index.jsp”>
<c:param name=”username” value=”张三”/>


</c:url>
结果为:/JSTL/index.jsp?username=%ED%2C%3F%6B%AC%3F

  • var:指定变量名,一旦添加了这个属性,那么url标签就不会再输出到页面,而是把生成的url保存到域中。
  • scope:它与var一起使用,用来保存url到指定域中。
    (4)if:对应java中的if语句
  • <c:if test=”布尔类型”>....</c:if>,当test为真时,执行标签体内容
    (5)choose:它对应java中的if/else if/ ... /else
  • 例如:
<c:choose>
<c:when test=””> ... </c:when>
<c:when test=””> ... </c:when>
<c:when test=””> ... </c:when>
...
<c:otherwise> ... </c:otherwise>
</c:choose>

(6)forEach
它用来循环遍历数组、集合,还可以用来计数方式来循环

  • 计数方式:
    Java:
for(int i = 1; i <= 10; i++){
System.out.println(i);
}

等同于:

<c:forEach var=”i” begin=”1” end=”10”>
${i}
</c:forEach>

属性介绍:

  • var:循环变量
  • begin:设置循环变量从几开始
  • end:设置循环变量到几结束
  • step:设置步长,等同于Java中的i++或i+2.默认为1
    输出集合和数组
    数组:
<% String[] strs = {one,two}%>

<c:forEach items=”${strs}” var=”str”>
${str}<br/>
</c:forEach>

等同于java中的增强for

for(String str : strs){
......
}

属性介绍:

  • items:指定要循环谁,它可以是一个数组或一个集合
  • var:把数组或集合中的每个元素赋值给var指定的变量。
    <c:forEach items=”{strs}” var=”str” varStatus=”vs”>{vs.index}
    // 输出遍历数组或者集合的下标
    {vs.count}<br/> // 输出遍历数组或集合的个数{vs.first}
    // 返回布尔类型,是否是第一个元素
    {vs.last}<br/> // 返回布尔类型,是否是最后一个元素{vs.current}
    // 当前对象,相当于输出
    </c:forEach>
    4.fmt标签库——它是格式化库
    <fmt:formatData value=”” pattern=””>
  • value:指定一个Data类型的变量
  • pattern:用来指定输出的模板,例如:yyyy-MM-dd HH:mm:ss
    <fmt:formatNumber value=”num1” pattern=”0.00”>
  • 保留小数点后两位,它会四舍五入,不足两位用0补位
    <fmt:formatNumber value=”num1” pattern=”#.##”>
  • 保留小数点后两位,它会四舍五入,不补位
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。