190719-02(JSTL 标准标签库){取值/解析/请求/判断/运算}

JSTL 标准便签库 = ?

JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。

在 developerWorks 上其新系列的第一篇文章中,软件工程师Mark Kolb 向您展示了如何使用 JSTL 标记来避免在 JSP 页面中使用脚本编制元素。您还将了解如何通过从表示层删除源代码来简化软件维护

最后,您将了解 JSTL 经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对 JSTL 操作指定动态属性值。



※使用JSTL前必须在本页面设置taglib指令(用于导入JSTL标签库)

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

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

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

c:out 标签用来将作用域对象中数据输出到页面中

<%

request.setAttribute("weather", "今天天气怎么样?"); 

session.setAttribute("weather", "今天天气怎么样");

%>

<c:out value="${weather}" default="查询出错"></c:out>

<c:out value="${sessionScope.weather}" default="查询出错"></c:out>

※不指定作用域则默认从最小作用域开始取值

c:set标签用于将数据放入到作用域对象中,默认放入最小的作用域对象中。通过scope属性指定作用域

<c:set var="name" value="zhangsan" scope="request"></c:set>

${requestScope.name}

※c:set还可以标签中间添加html代码作为标签的value属性值

value的数据作为html标签插入


c:set插入表格标签

<c:set var="mytable">

<table border="1" style="border-collapse:collapse">

<tr><td>1</td><td>2</td></tr>

<tr><td>3</td><td>4</td></tr>

</table>

</c:set>

//通过jsp将表格以标签形式插入

${mytable}


表格


c:remove将指定key从作用域中删除,通过scope属性指定作用域

<%

session.setAttribute("weather", "今天天气怎么样");

%> 

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

${weather}

c:if标签做判断

<%

request.setAttribute("score", 50);

%>

<c:if test="${score >= 60}" var="合格">

成绩合格!

</c:if>

<c:if test="${!合格}">

成绩不合格!

</c:if>

c:choose/c:when/c:otherwise 组标签可以表示多条件判断

<%

request.setAttribute("score", 99);

%>  

<c:choose>

<c:when test="${score >= 90 }">成绩优秀!</c:when>

<c:when test="${score >= 80 }">成绩良好!</c:when>

<c:when test="${score >= 60 }">成绩合格!</c:when>

<c:otherwise>成绩不合格</c:otherwise>

</c:choose>

※注意:

1.c:otherwise 不能出现在c:when 之上。

2.c:otherwise 和 c:when 之间、c:when 和 c:when 之间不能出现其他字符。  

c:forEach 遍历数据,items 里填入一个可以遍历的结构

<c:forEach begin="1" end="10" step="2" var="num" varStatus="status">

<!-- step是判断条件-->

${num}---${status.first}---${status.last}---${status.index}---${status.count}<br>

</c:forEach>

-----------------------------------    分     割     线      --------------------------------------------------

//用户列表

<%

List list = new ArrayList();

list.add(new User("zhangsan","张三")); 

list.add(new User("lisi","李四"));

 list.add(new User("xiaoming","小明"));

 list.add(new User("xiaohong","小红"));

 request.setAttribute("persons", list);   

%>

//创建用户表

<table border="1" style="border-collapse:collapse">

//先创建表头

<tr><td>用户名</td><td>真实姓名</td></tr>

//再通过forEach循环遍历list列表中的itmes属性

<c:forEach items="${persons}" var="user">

<tr><td>${user.username}</td><td>${user.realname}</td></tr> 

</c:forEach>

 </table> 


从左依次排序:${num}---${status.first}---${status.last}---${status.index}---${status.count}<br>


用户列表


c:import:将一个URL中的内容导入在本页面中一起显示

<c:import url="http://www.baidu.com"></c:import>

c:redirect:JSTL 重定向

<c:redirect url="http://localhost:8080/day04/testjstl.jsp"></c:redirect>

fmt:formatDate / fmt:parseDate 输出日期

<%

request.setAttribute("d1", new Date());

%>

//输出当前系统时间到页面

<fmt:formatDate value="${d1}" pattern="yyyy年MM月dd日 HH时mm分ss秒"/> 

-----------------------------------    分     割     线      --------------------------------------------------

//将时间日期转换成指定格式后,输出到在页面上

<c:set var="nowdate" value="2019-07-19" />

 <fmt:parseDate value="${nowdate}" var="key" pattern="yyyy-MM-dd"/> 

<c:out value="${key}" />   


输出当前系统时间到页面


将时间日期转换成指定格式后,输出到在页面上

fn :length 输出指定对象的字节长度

${fn :length(sessionScope.scope)}

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

推荐阅读更多精彩内容

  • 1什么是JSTLJSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL...
    TY_阅读 373评论 0 1
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,442评论 0 13
  • 一、jsp介绍 jsp作用jsp全称java server pages(java服务器页面),本质是一个servl...
    圣贤与无赖阅读 1,248评论 0 14
  • EL(Expression Language)EL表达式 作用:在JSP中消灭java代码 语法: "${ }" ...
    唯死撑尔阅读 149评论 0 0
  • title: JavaWeb之JSTL标签库tags: JavaWeb JSTLcategories: JavaW...
    codingXiaxw阅读 694评论 0 3