问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JSTL标签

发布网友 发布时间:2023-02-16 12:03

我来回答

1个回答

热心网友 时间:2023-09-17 10:31

根据功能可以分为五大类:

1、核心标签

2、格式化标签

3、SQL 标签

4、XML 标签

5、JSTL 函数

一、核心标签

 1、<c:out />标签会自动忽略XML标记字符,所以它们不会被当做标签来处理。标签用来显示一个表达式的结果,与<%= %>作用相似,它们的区别就是<c:out>标签可以直接通过"."操作符来访问属性。

<c:out>标签有如下属性:

 scope 的作用域大小依次为:

application > session > request > page(默认)

jsp 处理变量的作用域先后依次为:

page(默认) -> request -> session -> application

2、<c:set>标签用于设置变量值和对象属性。

3、<c:remove>标签用于移除一个变量。

4、<c:catch> 标签主要用来处理产生错误的异常状况,并且将错误信息储存起来。

5、<c:choose>标签与Java switch语句的功能一样,用于在众多选项中做出选择。

switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>。

<c:when>标签的属性如下:

6、<c:import>标签提供了所有<jsp:include>行为标签所具有的功能,同时也允许包含绝对URL。

<c:import>标签有如下属性:

7、<c:forEach>标签用作迭代一个集合中的对象。

语法格式:

<c:forTokens

    items="<string>"

    delims="<string>"

    begin="<int>"

    end="<int>"

    step="<int>"

    var="<string>"

    varStatus="<string>">

<c:forEach>标签有如下属性:

c:forEach varStatus 属性

  current : 当前这次迭代的(集合中的)项

  index : 当前这次迭代从 0 开始的迭代索引

  count : 当前这次迭代从 1 开始的迭代计数

  first : 用来表明当前这轮迭代是否为第一次迭代的标志

  last : 用来表明当前这轮迭代是否为最后一次迭代的标志

  begin : 属性值

  end : 属性值

  step : 属性值

例如:

<c:foreach  items="${sessionScope.userList}"  var="userItem"  begin="1"  end="10"  step="3"  varStatus="userStatus"> XXX </c:foreach>

实例解读:  对 session 对象存储的 userList 集合对象进行遍历,每次访问的项暂时存储在 userItem 变量中,从索引 1 开始至索引 10 进行访问,但不是依次访问,每隔 3 个元素访问一次。每次访问项的状态相关值由 userStatus 对象暂存。

<c:foreach> 的 varStatus 属性暂存项的相关状态属性,可由 EL 表达式引用。

${userStatus.index} 此项的索引,从0开始

${userStatus.count} 此项的计数序号,从1开始

${userStatus.first} 此项是否是第一项,布尔值

${userStatus.last} 此项是否是最后一项,布尔值

${userStatus.begin} 此次迭代的起始索引,对应<c:foreach>中begin属性值

${userStatus.end} 此次迭代的终止索引,对应<c:foreach>中end属性值

${userStatus.step} 此次迭代的跳跃步伐,对应<c:foreach>中step属性值 

8、<c:forTokens>标签通过指定分隔符将字符串分隔为一个数组然后迭代它们。

<c:forTokens

    items="<string>"

    delims="<string>"

    begin="<int>"

    end="<int>"

    step="<int>"

    var="<string>"

    varStatus="<string>">

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

这个标签在需要的时候会自动重写URL。

var属性用于存储格式化后的URL。

<c:url>标签只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括<c:param>中指定的参数。

<c:url>标签有如下属性:

10、<c:param>标签用于在<c:url>标签中指定参数,而且与URL编码相关。

在<c:param>标签内,name属性表明参数的名称,value属性表明参数的值。

语法格式:

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

<c:param>标签有如下属性:

11、<c:redirect>标签通过自动重写URL来将浏览器重定向至一个新的URL,它提供内容相关的URL,并且支持c:param标签。

c:redirect标签有如下属性:

二、格式化标签

JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:

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

1、<fmt:formatNumber>标签,<fmt:formatNumber>标签用于格式化数字,百分比,货币。

语法格式:

<fmt:formatNumber

  value="<string>"

  type="<string>"

  pattern="<string>"

  currencyCode="<string>"

  currencySymbol="<string>"

  groupingUsed="<string>"

  maxIntegerDigits="<string>"

  minIntegerDigits="<string>"

  maxFractionDigits="<string>"

  minFractionDigits="<string>"

  var="<string>"

  scope="<string>"/>

fmt:formatNumber>标签有如下属性:

如果type属性为percent或number,那么您就可以使用其它几个格式化数字属性。maxIntegerDigits属性和minIntegerDigits属性允许您指定整数的长度。若实际数字超过了maxIntegerDigits所指定的最大值,则数字将会被截断。

有一些属性允许您指定小数点后的位数。minFractionalDigits属性和maxFractionalDigits属性允许您指定小数点后的位数。若实际的数字超出了所指定的范围,则这个数字会被截断。

数字分组可以用来在每三个数字中插入一个逗号。groupingIsUsed属性用来指定是否使用数字分组。当与minIntegerDigits属性一同使用时,就必须要很小心地来获取预期的结果了。

您或许会使用pattern属性。这个属性可以让您在对数字编码时包含指定的字符。接下来的表格中列出了这些字符。

2、<fmt:formatDate>标签用于使用不同的方式格式化日期。

语法格式

语法格式

<fmt:formatDate

  value="<string>"

  type="<string>"

  dateStyle="<string>"

  timeStyle="<string>"

  pattern="<string>"

  timeZone="<string>"

  var="<string>"

  scope="<string>"/>

<fmt:formatDate>标签有如下属性:

<fmt:formatDate> 标签格式模式:

三、JSTL函数

JSTL包含一系列标准函数,大部分是通用的字符串处理函数。引用JSTL函数库的语法如下:

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

1、fn:contains()函数用于确定一个字符串是否包含指定的子串

<c:if test="${fn:contains(<原始字符串>, <要查找的子字符串>)}">

...</c:if>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
重磅|8月1日起 报关单的填法将重大改变 进出口权需要报关员么 宝宝被莫名的虫子咬了又红又肿又痒怎么? 北京疫情个为数是什么意思? 在做刀伤的手术时没有接上神经是医院的过错吗? 手术室收费项目有哪些 手术室的秘密:一台10万的手术,主刀医生拿多少?答案颠覆你的认知 阿里巴巴中修改产品信息只修改一小部分行吗?谢谢 可否给我一个阿里巴巴的序列号~谢谢了 阿里巴巴店铺产品搜索框代码谁有呢,给我发一下谢谢了! 58同城招聘信息电焊工工资可靠吗 58同城上的高薪招聘电焊工的信息是不是真的?求各位老师们给指点指点。谢谢。 在58同城招聘电焊工的工作,单位是山东鸿源水产有限公司,洪辉集团,等等公司好几个,这些招聘信息是假 金狐1983品牌创史于哪年 1983是卖什么的 寒假生活里的收获作文 在wps表格和excel中在默认状态下输入文本的水平对齐方式为 描写气喘得很急的四字词语 寒假最大的收获作文600字 寒假收获作文350字 寒假的收获随笔? 加刚刀用什么钢材最好 不锈钢刀怎么加钢 学生寒假收获总结心得体会范文(通用6篇) 二维码收款能看到使用花呗吗 梦见自己是条美人鱼 梦到钱被他人偷了代表着什么 通联收银宝异常涉嫌套现怎么解决 金华火腿和金苏火腿区别 开发商卖楼顺序是什么 征信报告有6次逾期,要到什么时候能消掉? 姜泡脚有什么功效 &#x200B;2019年初级银行从业资格考试风险管理考点试题八 2022年中级经济师考试考前必备试题及答案解析 &#x200B;2019年中级银行从业资格考试法律法规练习题:银行基本法律法规_百度... 孕妇为什么会便秘 孕妇怎么会便秘 为什么怀孕后容易便秘? 省考提交信息人数和资格审核人数 2022年甘肃省考永靖县各岗位报考人数报考 红楼春趣登时是什么意思? 农村合作医疗忘了交,过了缴费日期,还能补交吗 新农合可以补交吗? 2022年新农合忘记交了怎么办 新农合缴费日期过了还能交吗 安慕希小程序怎么改手机号 存10万定期三年利息多少 10万元存邮政银行3年能拿多少利息 sequence and time 怎么画 为什么会得到两个时序图 mul合作图lifeline怎么换图标