创作不易 觉得有帮助或者想要实战源码可以点赞关注收藏后评论区留言

文章目录

  • 前言
  • 一、表达式标签
  • 二、URL相关标签
  • 三、流程控制标签
  • 四、循环标签
  • 总结

前言

JSTL叫做标准标签库 但实际上它是由5个功能不同的标签库组成 这5个标签库分别是核心标签库 格式标签库  SQL标签库 XML标签库和函数标签库 在使用这些标签库之前,必须在JSP页面的顶部用<%@taglib%>指令定义引用的标签库和访问前缀


一、表达式标签

1:<c:out>标签用于将表达式的值输出到JSP页面中 该标签类似于JSP的表达式<%=表达式%>

或者EL表达式${expression} 它由两种语法格式 一种没有标签体 另一种有标签体 这两种语言的输出结果完全相同

1:没有标签体

<c:out value="expression" [escapeXml="true[false"][default="defaultValue"]/>

2:有标签体

<c:out value="expression"[escapeXml="true[false"]>defaultValue
</c:out>

2:<c:set>标签用于在指定范围中定义保存某个值的变量 或为指定的对象设置属性值 使用该标签可以在页面中定义变量 而不用在JSP页面中嵌入打乱HTML排版的JAVA代码 有四种语法格式

1:在scope指定的范围内将变量值存储的变量中

<c:set var="name" value="value" [scope="范围"]/>

2:在scope指定范围内将标签体存储到变量中

<c:set var="name" [scope="page|request|session|application"]>标签体
</c:set>

3:将变量值存储在target属性指定的目标对象的propName属性中

<c:set value="value" target="object" property="propName"/>

4:将标签体存储到target属性指定的目标对象的propName属性中

<c:set target="object" property="propName"/>
标签体
</c:set>

3:<c:remove>标签用于移除指定的JSP范围内的变量 语法如下

<c:remove var="name" [scope="范围"]/>

4:<c:catch>标签用于捕获程序中出现的异常 如果需要它还可以将异常信息保存在指定的变量中 该标签与java中的  try...catch语句类似 语法如下

<c:catch [var="exception"]>//可能存在异常的代码
</catch>

二、URL相关标签

1:<c:import>标签可以导入站内或者其他网页的静态和动态文件到Web页面中 与JSP中<jsp:include>类似 不同的是JSP只能导入站内资源 而import还可以导入站外资源

有如下两种语法

1:

<c:import url="url" [context="context"] [var="name"] [scope="范围"] [charEncoding="encoding"]>
标签体
</c:import>

2:

<c:import url="url" varReader="name" [context="context"] [charEncoding="encoding"]>
[标签体]
</c:import>

2:<c:url>标签用于生成一个URL路径的字符串 这个生成的字符串可以赋予HTML的<a>标记实现URL的连接 或者用这个生成的URL字符串实现网页转发与重定向等 两种语法如下

<c:url value="url" var="name"][scope="范围"] [context="context"]/>
<c:url value="url" var="name"][scope="范围"][context="context]><c:param/>可以有多个<c:param>标签
</c:url>

3:<c:direct>重定向标签可以将客户端发出的request请求重定向到其他URL服务端 由其他程序处理客户端的请求 这期间可以对request请求中的属性进行修改或添加 然后把所有属性传递到目标路径 语法有如下两种

<c:redirect url="url" [context="/context"]/>
<c:redirect url="url" [context="/context"]><c:param/>可以有多个<c:param>标签
</c:redirect>

4:<c:param>标签用于为其他标签提供参数信息 可以实现动态指定参数 从而使标签可以完成更复杂的程序应用 语法如下

<c:param name="paramName" value="paramValue"/>

三:流程控制标签

流程控制标签在程序中会根据不同的条件去执行不同的代码来产生不同的运行结果 使用流程控制可以处理程序中任何可能发生的事情

1:<c:if>条件判断标签可以根据不同的条件处理不同的业务 它与Java语言中的if语句类似 只不过该标签没有else标签

判断条件表达式 并将表达结果保存在var属性指定的变量中

<c:if test="condition" var="name" [scope=page|request|session|application]/>

语法二还可以根据条件判断结果去执行标签体

<c:if test="conditon" var="name" [scope="范围"]>标签体
</c:if>

 2:<c:choose>标签可以根据不同的条件完成指定的业务逻辑 如果没有符合条件就执行默认条件的业务逻辑<c:choose>标签只能作为<c:when>和<c:otherwise>标签的父标签 而要实现条件选择逻辑可以在<c:choose>中嵌套<c:when>和<c:otherwise>标签来完成

即判断when的条件是否正确 正确则显示 否则判断下一个 直到判断到otherwise

<c:choose>标签体
</c:choose>

3:<c:when>条件测试标签是<c:choose>的子标签 它根据不同的条件执行相应的业务逻辑

<c:when test="conditon">标签体
</c:when>

4:<c:otherwise>同上 语法如下

</c:otherwise>
标签体
</:otherwise>

四:循环标签

1:<c:forEach>循环标签可以根据循环条件 遍历数组和集合类中的所有或部分数据  语法有两种

<c:forEach items="data" [var="name"] [begin="start"][end="finish"][step="step]
[varStatus="statusName"]>标签体
</c:forEach>
<c:forEach begin="start" end="finish" [var="name"] [varStatus="statusName"][step="step"]>
标签体
</c:forEach>

2:<c:forTokens>迭代标签可以用指定的分隔符将一个字符串分隔开 根据分割的数量确定循环的次数 语法如下

<c:forTokens items="String" delims="char" [var="name"] [begin="start"] [end="end"][step="len"][varStatus="statusName"]>标签体
</c:forTokens>

总结

首先对JSTL标签库进行了简要介绍 最后重点对表达式标签 URL相关标签 流程控制标签和循环标签进行了详细介绍

创作不易 觉得有帮助或者想要实战源码可以点赞关注收藏后评论区留言

Java Web入门之JSTL标签的解析及使用(超详细必看)相关推荐

  1. JAVA Web入门之JSP内置对象的解析及使用(超详细必看)

    创作不易 觉得有帮助请点赞关注收藏~~ 概述:由于JSP使用java作为脚本语言 所以JSP具有强大的对象处理能力 并且可以动态创建web页面内容 但java语言在使用一个对象前  需要先实例化这个对 ...

  2. Java Web:使用jstl标签

    maven依赖 <dependency><groupId>jstl</groupId><artifactId>jstl</artifactId&g ...

  3. Java小游戏之Swing框架实现飞机大战(附源码 超详细必看)

    需要源码和图片集请点赞关注收藏后评论区留言~~~ 1.项目主要工作 本次项目的题目--基于Java的飞机大战游戏的设计与实现,主要目的是实现飞机大战这个游戏.期望结果:游戏无BUG(现在人们将在电脑系 ...

  4. Android Studio App开发入门之在活动之间传递消息(附源码 超详细必看)(包括显示和隐式Intent,向上一个和下一个Activity发送数据)

     运行有问题或需要源码请点赞关注收藏后评论区留言~~ 显示Intent和隐式Intent Intent是各个组件之间的信息沟通的桥梁,既能在Activity之间沟通,又能在Activity与Servi ...

  5. 【JavaScript+自然语言处理+HTML+CSS】实现Web端的智能聊天问答客服实战(附源码 超详细必看)

    需要源码请点赞关注收藏后评论区留言私信~~~ 智能客服的部署方式比较多样化,可以作为组件嵌入到其他应用程序,也可以部署到定制网站,下面分别介绍如何新创建智能客服应用,从而使其能够集成为网站功能的一部分 ...

  6. java web入门经典 pdf_Java Web入门经典 (王国辉陈英) PDF

    资源名称:Java Web入门经典 (王国辉,陈英) PDF 第一篇 起步篇 第1章 开启jave web之门 2 第2章 不可不知的客户端应用技术 12 第3章 驾驭Java web开发环境 53 ...

  7. Java web入门——Servlet

    Java web入门--Servlet Servlet基础 Servlet是运行在服务器上的java小程序,B/S架构的应用需要访问数据库.或一些逻辑处理,均由servlet进行处理,他用来扩充基于h ...

  8. 《王总大气-Java web项目通用分页标签》

    <王总大气-Java web项目通用分页标签>  前言: 很久很久很久以前,山里有座庙,庙里有个老和尚.....?~!靠,sorry走神了. 其实我想说的是,在很久很久很久以前,森林里有一 ...

  9. Java Web入门项目之“网络交友”的设计与实现

    前言:这个小项目是我刚学习JSP时,参考"JSP程序设计"这本书写的.这里之所以说参考这本书而不是照着这本书写,主要是因为我自己完成的时候删掉了不少繁琐的写法(比如:文件上传):同 ...

最新文章

  1. Java抽象类和接口
  2. STC89C52RC单片机例程实现_流水灯1_模块化(C语言实现)
  3. 使用GridSearchCV和RandomizedSearchCV进行超参数调整
  4. PAT 1065 A+B and C (64bit) (20)
  5. 跳槽上班第一天的感受
  6. 【如意影视】运营级+完整类库+解析线路+无限增加或删减解析接口+如意可视化播放器1.1
  7. (0)PCIE接口目录(学无止境)
  8. 【SAS】REG过程详解
  9. php 织梦symbol,dede织梦代码调用
  10. java语言程序设计第三版沈泽刚课后答案_Java语言程序设计(第3版)学习指导与习题解析...
  11. 全国省级地级县级行政区sql与json数据
  12. Python基础学习之文件(1)
  13. css超链接样式+雪碧图实现导航
  14. 云计算数据中心网络的关键技术
  15. 计算机应用基础演示文稿内容,计算机应用基础(PowerPoint 2003电子演示文稿系统)...
  16. 学渣的刷题之旅 leetcode刷题 83.删除排序链表中的重复元素
  17. Java初学 通过接口实现猫狗跳高
  18. 每日一练 — 2022.01.30
  19. ABAPDEMOCALLTRANSACTION使用_SAP刘梦_新浪博客
  20. netty 丢弃服务

热门文章

  1. 集合框架|Java集合框架基本使用
  2. 解决D3.zoom()缩放和平移初始化时图形位置会跳跃的问题(v6版本)
  3. python recv_python网络编程调用recv函数完整接收数据的三种方法
  4. 【UNR #6 C】稳健型选手(分治)(主席树)(二分)
  5. Arcgis二次开发——建立自己的小工程
  6. 【程序设计】浅拷贝与深拷贝
  7. python中set option_python的set_option选择
  8. c语言printf打印浮点型,printf以%d输出浮点数
  9. VC++图形平移功能的实现
  10. ls、ls -a、ls -l、ls -al、ll、ll -a区别