JSTL及Core标签库

这篇具有很好参考价值的文章主要介绍了JSTL及Core标签库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JSTL是一个不断完善的开放源代码的JSP标签库,使用JSTL可以取代在传统JSP程序中嵌入Java代码的做法,大大提高程序的可维护性。

JSTL包含五类标准标签库,它们分别是核心标签库国际化/格式化标签库SQL标签库XML标签库函数标签库在使用这些标签库之前,必须在JSP页面的顶部使用<%@taglib%>指定定义引用的标签库和访问前缀。

以下为此五种标签库的引用指令格式和作用:

(1)使用核心标签库的taglib指令格式

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

核心标签库主要用于完成JSP页面的常用功能,包括JSTL的表达式标签、URL标签、流程控制标签。例如用于输出文本内容的<c:out>标签、用于条件判断的<c:if>标签等等

(2)使用格式标签库的taglib指令格式

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

国际化/格式化标签库包含实现Web应用程序的国际化标签和格式化标签。例如设置JSP页面的本地信息,设置JSP页面的时区等等

(3)使用SQL标签库的taglib指令格式

<%@ taglib prefix="sql" url="http:/java.sun.com/jsp/jsp1/sql" %>

SQL标签库包含用于访问和操作数据库的标签。例如数据库连接、从数据库中检索数据等。因为在软件分层开发模型中,JSP页面仅作为显示层,一般不会在JSP页面直接操作数据库,所以SQl标签库不常用

(4)使用XML标签库的taglib指令格式

<%@ taglib prefix="xml" url="http:/java.sun.com/jsp/jsp1/xml" %>

XML标签库包含对XML文档中的数据进行操作的标签,例如解析XML文件、输出XML文档中的内容,以及迭代处理XML文档中的元素。XML广泛应用于Web开发,使用XML标签库处理XML文档更加简单方便

(5)使用函数标签库的taglib指令格式

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

函数标签库提供了一套自定义EL函数,包含JSP网页制作者经常要用到的字符串操作

1、JSTL中的Core标签库

1.1 表达式标签

  • <c:out>

作用:将一段文本内容或表达式的结果输出到客户端(如果文本中包含需要转义的特殊字符,则该标签会先进行HTML编码转换后再输出)

语法格式:

(1)没有标签体的情况

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

(2)有标签体的情况

<c:out value="value" [escapeXml="{true|false}"]>

        defaultValue

</c:out>

没有标签体的情况下需要使用default属性指定默认值,有标签体的情况下在标签体中指定输出的默认值。

参数:

[ ]方括号内的属性为可选

value属性用于指定输出的文本内容

default属性用于指定当value为null时输出的默认值,默认为空字符串

escapeXml属性用于指定是否将<、>、&等特殊字符进行HTMl编码转换后在输出,默认为真

  • <c:remove>

作用:用于移除指定的JSP范围内的变量

语法格式:

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

参数:

var:用于指定要移除的变量名

scope:用于指定变量的有效范围,可选值有page、request、session和application,默认为page。如果在该标签中没有指定变量的有效范围,那么将分别在page、request、session和application的范围内查找该变量并移除,即在一个页面中,存在不同范围的多个同名变量时,会全部移除

1.2 流程控制标签

  • <c:if>

作用:用于条件判断

语法格式:

(1)没有标签体的情况

<c:if test="testCondition" var="result" 
 [scope="{page|request|session|application}"] />   

(2)有标签体的情况

<c:if test="testCondition" var="result" [scope="{page|request|session|application}"]>  
    body content
</c:if>

参数:

test属性:用于设置逻辑表达式

var属性:用于指定逻辑表达式中变量的名字

scope属性:用于指定var变量的作用范围,默认为page

  • <c:choose>和<c:when>、<c:otherwise>

<c:choose>标签没有属性,它必须与<c:when><c:otherwise>一起使用

在<c:choose>标签体中只能嵌套一个或多个<c:when>标签、零个或一个<c:otherwise>标签,并且<c:when>标签必须出现在<c:otherwise>标签前

<c:choose>标签语法格式:

<c:choose>
    Body content(<when> and <otherwise> subtags)
</c:choose>

<c:when>标签语法格式:

<c:when test="testCondition">
    Body content
</c:when>

<c:otherwise>标签语法格式:

<c:otherwise>
    conditional block
</c:otherwise>

这三个标签中只有<c:when>标签有一个test属性来用于条件判断,而<c:otherwise>标签作为 最后的分支,即前面的条件都不成立时才执行输出

1.3 循环标签

在JSP页面中经常需要对集合对象进行循环迭代操作,所以Core标签库提供了一个<c:forEach>标签来用于迭代集合对象(Set、List、Map、数组等)中的元素

(1)迭代包含多个对象的集合

<c:forEach [var="varName"] items="collection"
 [varStatus="varStatusName"] [begin="begin"]
 [end="end"] [step="step"]>
    body content
</c:forEach>

(2)迭代指定范围内的集合

<c:forEach [var="varName"] [varStatus="varStatusName"] 
 begin="begin" end="end" [step="step"]>
    body content
</c:forEach>

参数:

var属性:用于将当前迭代到的元素保存到page域中的名称

items属性:用于指定将要迭代的集合对象

varStatus属性:用于指定将当前迭代状态信息的对象保存到page域中的名称

begin属性:用于指定从集合的第几个元素开始迭代(如果没有指定items属性则从begin指定的值开始迭代到结束为止)

step属性:用于指定迭代的步长,即迭代因子的增量

1.4 URL相关标签

在开发Web应用程序时,通常会在JSP页面中实现URL的重新以及重定向等特殊功能,所以Core标签库也提供了相关标签

  1. <c:param>用于获取URL地址中的附加参数
  2. <c:url>用于按特定的规则重新构造URL
  3. <c:redirect>负责重定向

<c:param>通常嵌套在<c:url>内使用

<c:param>语法格式:

(1)使用value属性指定参数的值

<c:param name="name" value="value">

(2)在标签体中指定参数的值

<c:param name="name">
    parameter value
</c:param>

参数:

name属性:用于指定参数的名称

value属性:用于指定参数的值,当使用<c:param>标签为一个URL地址附加参数时,它会自动对参数值进行URL编码。例如,传递的参数值为“中国”,则将其转换为“%e4%b8%ad%e5%9b%bd”后再附加到URL地址后面,这也是使用该标签的最大好处

<c:url>语法格式:

(1)没有标签实体的情况

<c:url value="value" 
 [context="context"] [var="varName"]
 [scope="page|request|session|application"]>

(2)有标签实体的情况,在标签体内指定构造的URL参数

<c:url value="value" 
 [context="context"] [var="varName"]
 [scope="page|request|session|application"]>
    <c:param>标签
</c:url>

参数:

value属性:用于指定构造的URL

context属性:用于指定导入同一个服务器下其他Web应用的名称

var属性:用于指定将构造的URL地址保存到域对象的属性名称

scope属性:用于将构造好的URL保存到域对象中文章来源地址https://www.toymoban.com/news/detail-437502.html

到了这里,关于JSTL及Core标签库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分享78个Python源代码总有一个是你想要的

    分享78个Python源代码总有一个是你想要的 源码下载链接:https://pan.baidu.com/s/1ZhXDsVuYsZpOUQIUjHU2ww?pwd=8888  提取码:8888 下面是文件的名字。 12个python项目源码 Apache Superset数据探查与可视化平台v2.0.1 API Star工具箱v0.7.2 Archery SQL审核查询平台v1.9.1 ArkID企业级IDaaSIAM平台系统 v2.6.10 bk

    2024年02月07日
    浏览(56)
  • 分享57个游戏Python源代码总有一个是你想要的

     分享57个游戏Python源代码总有一个是你想要的 下载链接: https://pan.baidu.com/s/1qeHsJferwBwvwfMY38bxEA?pwd=8888  提取码:8888 游戏项目名称 100%基于Python的,模仿元气骑士的游戏 Firefly是稳定、快速扩展、能 “热更新”的分布式游戏服务器端框架 pygame桌面小游戏 (像素鸟 五子棋)

    2024年02月03日
    浏览(53)
  • 实现用java做一个简易版《羊了个羊》小游戏(附源代码)

    该项目是跟着这个b站视频一步一步写出来的,初学java有些地方我看不是很明白,但是讲解很仔细,大家可以看原视频,我没有添加背景音乐和背景图片,做出来的效果也勉勉强强。 代码已经上传到github上了,大家可以去github上直接下载代码,附上链接:点击进入github源码链接

    2024年02月04日
    浏览(77)
  • 【Java 进阶篇】用JSTL玩转Java:了解JSTL常用标签

    JavaServer Pages标准标签库(JavaServer Pages Standard Tag Library,简称JSTL)是Java Web应用程序中常用的标签库之一。它提供了一组标签,使得在JSP页面中处理数据、控制流程、以及显示内容变得更加便捷和高效。本文将带领你深入了解JSTL的常用标签,无论你是初学者还是有一定经验的

    2024年02月21日
    浏览(42)
  • JavaEE,EL表达式与jstl标签库

            主要作用:更方便获取数据;         ${} 合并了 获取加输出         1. 可以获取作用域对象中的数据。         2. 底层使用的是反射,在使用的时候可以通过键名即可获取对应的值。         3. 简化了在jsp页面中使用%%获取域对象数据的方式。  

    2024年02月06日
    浏览(36)
  • 完善跨境金融区块链服务平台,支持区域开放创新和特殊区域建设

    为了促进中小微企业外贸发展与稳步推动资本项开放,外管局将再出新招。 近日,国家外汇管理局举行会议强调,明年外汇管理工作要坚持稳字当头、稳中求进,完整、准确、全面贯彻新发展理念,加快构建新发展格局,统筹发展和安全,以深化外汇领域改革开放激活发展动

    2023年04月08日
    浏览(42)
  • 网站转换APP源代码 WebAPP源代码 网站生成APP源代码 Flutter项目 带控制端

    源码介绍 一款网站转换成APP的源代码,开发语言使用Flutter,开发工具使用的是AndroidStudio,你只需要在APP源代码里面填写你的域名,即可生成即可生成APP,包括安卓或者苹果,与此同时我们提供了APP的控制端.你可以通过控制端设置APP的颜色、添加APP的图标、添加APP的菜单栏目。 添加

    2024年02月04日
    浏览(56)
  • GDB 源代码查看、管理、搜索、设置源代码目录,调试发行版,观察点

    C_FLAGS中加入-g选项后,生成的可执行文件中会保存调试信息。 1、 set listsize 10:设置list查看的代码行数        list -: 向前查看代码        list 函数名: 产看函数代码 2、search        forward-search :跟 search功能一样       reverse-search:反向搜索 3、directories 路径:添加源代码路

    2024年02月09日
    浏览(66)
  • Python背单词记单词小程序源代码,背单词记单词小游戏源代码

    背单词小游戏,要有多界面交互,界面整洁、美观,可调节游戏等级难度,可配置游戏信息。 有游戏分数,游戏时间,动画特效,背景音乐,不同游戏等级的历史最高分记录。 拼写成功的英文单词显示中文意思。支持长按回删键[backspace],快速删除单词字母。 多种游戏困难

    2024年02月15日
    浏览(60)
  • matlab查看源代码

    matlab函数源代码-查看 Ctrl+D 最简单方便的一种方法,鼠标划中函数名,按CTRL+D即可打开函数的m文件

    2024年01月25日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包