javaWeb 基础 8: jstl 标准标签库

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

使用
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 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3201 引用 • 8216 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 342 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 145 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    412 引用 • 3588 回帖
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 402 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 7 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 543 回帖 • 1 关注
  • OpenCV
    15 引用 • 36 回帖 • 7 关注
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 6 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    326 引用 • 1395 回帖 • 1 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 3 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 118 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 93 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 107 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 11 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 348 关注
  • OnlyOffice
    4 引用 • 25 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 251 关注
  • B3log

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

    1063 引用 • 3455 回帖 • 152 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 6 关注
  • MongoDB

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

    91 引用 • 59 回帖 • 5 关注
  • PHP

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

    167 引用 • 408 回帖 • 489 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 1 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2040 回帖