javaWeb 基础 8: jstl 标准标签库

本贴最后更新于 2601 天前,其中的信息可能已经斗转星移

使用
1.下载 jstl 标签库 jar 包
2.将 jstl 中的 jstl.jar 和 standard.jar 复制到 WEB-INF/lib 下
f6304628e0fb4cd69776d6f23147a092-image.png
3,在页面导入

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

核心标签库
1.c:out 输出信息到页面
escapeXml=true ,输入内容按照原样输出

	  <c:out value="hello"/> 
	  <% 
	  request.setAttribute("name", "tom");
	  %> 
	  <c:out value="<font color='red'>${name}</font>" escapeXml="true"></c:out>

fe8591dba0614ab285f0dd831a9271f0-image.png

2.c:set
scope 用法--> 设置值
<c:set value="hello" var ="s" scope="request"/>
相当于
<% request.setAttribute("s", "hello"); %>
target property 用法--> 对某个对象属性修改
新建一个 Person 类

public class Person {
	String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

jsp 页面新建 Person 对象 p

  <%
  Person p = new Person();
  p.setName("tom");
  request.setAttribute("p", p);
  %>
	  <c:set target="${p}" property="name" value="syy"/>

相当于

<%
((Person)request.getAttribute("p")).setName("123");
%>

3.c:remove 删除范围内数据

	<c:set var="s" value="tome" scope="request"/>
	<c:remove var ="s" scope="request"/>
	${empty s}

60a5fd967a1a46cbad94ebf3ae275d7f-image.png

4.c:catch 获取异常

<c:catch var="e">
		<%
		int a=1/0;
		%>
</c:catch>
${e}

04fbb00a3425485d88975420f61e8da3-image.png

5.c:if 如果 test 的属性值为 true 会执行标签体中内容

<%
session.setAttribute("username", "syy");
%>
<c:if test="${!empty sessionScope.username}">
hello
</c:if>
<c:if test="${empty sessionScope.username}">
not login
</c:if>

a712e932faf442c0996bdfd920ab88cf-image.png

6.c:choose c:when c:otherwise 相当于 switch case

<%
	int a=1;
	switch (a){
	case 1:out.write("1");break;
	case 2:out.write("2");break;
	default: out.write("error"); break;
	}
%>

相当于

<c:set value="1" var="a"/>
<c:choose>
	<c:when test="${a==1}">
		<c:out value="1"/>
	</c:when>
	<c:when test="${a==2}">
		<c:out value="2"/>
	</c:when>
	<c:otherwise>
		<c:out value="error"></c:out>
	</c:otherwise>
	</c:choose>

7.c:forTokens 切割字符串

<c:set var="str"  value="a,b,c"/>
<c:forTokens items="${str}" delims="," var="s">
${s}<br/>

</c:forTokens>

5fddc3adcfd443d8b4595a0486dc6ae4-image.png

8.c:import 相当于 include

<c:import url="hello.jsp"></c:import>

a5905a0bb4774d7fbf91ab966c6eb5ac-image.png

9.c:url 标签将 URL 格式化为一个字符串,然后存储在一个变量中

<c:url context="/jstlDemo" value="/index.jsp" var="myurl"/>
<a href="${myurl}">
url
</a>

36281be6897f42da9572cfd5784b2024-image.png

10.c:param 参数操作

<c:url context="/jstlDemo" value="/index.jsp" var="myurl">
<c:param name="name">syy</c:param>
</c:url>
<a href="${myurl}">
url
</a>

72eba565e7f74da3ae47fb7c406c0e06-image.png

11.c:redirect 重定向

<c:redirect url="http://www.syyblog.me/blog"></c:redirect>

12.c:forEach
基本

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

对数组

<%
String[] str={"1","2","3"};
request.setAttribute("str", str);
%>
<c:forEach items="${str}" var="s">
${s}
</c:forEach>

对 map

<%
Map<String,String> map = new HashMap<String,String>();
map.put("1","a");
map.put("2","b");
map.put("3","c");
request.setAttribute("map", map);
%>
<c:forEach items="${map}" var="m">
${m.key}&nbsp;${m.value}<br>
</c:forEach>

eb354489c5744721a1c44c166369d9c0-image.png

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 386 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 3 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 638 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 242 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 159 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1706 回帖 • 1 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 668 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 149 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 6 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 51 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    91 引用 • 583 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 491 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 627 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    26 引用 • 196 回帖 • 18 关注
  • CodeMirror
    1 引用 • 2 回帖 • 130 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 141 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 535 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3454 回帖 • 191 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    265 引用 • 666 回帖
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 3 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 371 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖