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=”#.##”>
  • 保留小数点后两位,它会四舍五入,不补位
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352