`

JSTL--核心标签库

 
阅读更多

1:<c:out>标签

 

<c:out value="${Object }"  escapeXml="${boolean }"  default="${Object }" />

<c:out value="${Object }"  escapeXml="${boolean }">
    ${Object}
</c:out>

 注意:

a:

value的类型为Object,即value可以为Reader对象,使用该标签输出Reader对象时,如果要读取的文件的内容使用了非西欧字符集编码(如UTF-8、GBK等),应使用InputStreamReader类的构造方法指定读取文件内容时所采用的字符集编码(应和要读取的文件内容的字符集编码保持一致)。

Reader  r=new  InputStreamReader(new  FileInputStream(path) , " utf-8 ");

 

b:

如何将value置为null ?

1:使用JSP表达式    <c:out  value="<%=null %>" />
2:使用E  L表达式    <c:out  value="${null }" />

下面的方法不能见value置为null
<c:out value="null" />

 c:

default属性和标签体不能同时指定默认值,否则抛出异常。

 

 

2:<c:set>标签

a:“var”版

<c:set var="String"  value="${Object }"  scope="String" />

<c:set var="String"  scope="String">
    ${Objet}
</ c:set>

属性:
    var:待设置的web域中的属性的名字
    value:属性的值
    scope:待保存或删除的属性所属的web域,可选值为 page、request、session、application
注意:
    如果不指定value属性或标签体,该标签将删除scope指定的域中的var指定的属性

 

b:“target”版

<c:set  target="${Object}"  property="${String}"  value="${Object}" />

<c:set  target="${Object}"  property="${String}">
    ${Object}
</c:set>

属性:
    target:指定要设置的对象,JavaBean或Map
    property:待设置的target对象的属性名称
    value:同var版
注意:
    1:如果不指定value属性或标签体,该表签将删除target指定的Map对象中的property指定的
        key-value对,或将target指定的JavaBean对象的property属性置为null。
    2:如果属性值不能转换成property属性指定的对象类型,该标签将抛出异常。

 

注意:

1:该标签不能同时指定value属性和标签体,否则将抛出异常。

2:如果同时指定var和target,那么var属性的优先级更高。

3:var和target属性必须至少有一个,如果2个属性都没有或2属性都为null,那么标签将抛出JspTagException异常。

 

3:<c:remove>标签

<c:remove>标签用于删除web域(page、request、session、application)中的属性,不能用来删除JavaBean和Map对象中的属性、键值对。

<c:remove  var="String"  [scope="String"] />

属性:
    var:String  不支持动态属性值  待删除的属性的名称
    scope:String   不支持动态属性值   待删除的属性所在的web域

 

4:<c:catch>标签

该标签用于捕获任何Java代码或标签抛出的异常。

<c:catch  [value="varName"]>

</c:catch>

属性:
    var:String   不支持动态属性值
          表示捕获到的异常对象。
          如果指定该属性,该标签会以var属性指定的名称将异常对象保存在page域中。
          如果未指定该属性,则该标签只捕获异常,不保存异常。

补充:
      通过异常对象输出异常信息的方式:
           1:<c:out value="${e.message}"/>
               输出举例:Cannot convert xxx of type class java.lang.String to class 
                            java.util.Date
           2:<c:out value="${e.stackTrace}"/>
              输出举例:[Ljava.lang.StackTraceElement;@157ea4a
           3:<c:out value="${e}">
              输出举例:java.lang.IllegalArgumentException:Cannot convert xxx of type 
                           class java.lang.String to class java.util.Date

 

5:<c:if>标签

<c:if  test="${boolean}"  var="varName"  scoope="page">

<c:if  test="${boolean}"  var="varName"   scope="page">
    如果test指定属性的运算结果为真,则执行此处的代码。
</c:if>

注意:
    当指定scope属性时,必须指定var,否则该标签将抛出异常。

 

6:<c:choose>  <c:when>  <c:otherwise>标签

<c:choose>
    <c:when  test="${boolean}">
         代码
    </c:when>
    <c:when  test="${boolean}">
         代码
    </c:when>
    <c:otherwise>
         代码
    </c:otherwise>
<c:choose>

 注意:

1:<c:when>和<c:otherwise>标签必须是<c:choose>标签的子标签,不能单独使用。

2:<c:choose>标签中包含一个或多个<c:when>标签,包含0个或1个<c:otherwise>标签。

3:<c:when>标签必须放在<c:otherwise>标签的前面。

4:<c:when>和<c:otherwise>标签中可以包含任意的JSP代码。

5:<c:choose>标签中除了包含<c:when>和<c:otherwise>标签外,还可以包含空格、\r\n、制表符和JSP注释,除此之外不能在<c:choose>标签中(<c:when>和<c:otherwise>标签的外部)

    包含其他任何字符,否则<c:choose>标签将抛出异常。

 

7:<c:forEach>标签

 

语法1:根据集合对象进行迭代
    <c:forEach  [var="varName"]  items="${collection}"
                    [varStatus="varStatusName"]
                    [begin="${beginNum}"]
                    [end="${endNum}"]
                    [step="${steoNum}"]>
          需迭代执行的代码
     </c:forEach>

语法2:根据指定的次数进行迭代
    <c:forEach  [var="varName"]
                    [varStatus="varStatusName"]
                    begin="${beginNum}"  end="${endNum}"  [step="${stepNum}"]>
          需迭代执行的代码
    </c:forEach>

 

 

 

属性名 是否支持动态属性值 属性类型 属性描述
var false String 将当前迭代元素保存在page域中所用的属性名
items true (见下面) 用于迭代的集合对象
varStatus false String 将当前迭代元素状态信息对象保存在page域中所用的属性名
begin true int

如果指定items属性,就从集合中第begin个元素开始迭代。

如果未指定items属性,那么就从begin指定的数值开始迭代,直到end指定的值。

begin属性的索引值从0开始。

end true int

如果指定items属性,则迭代到第end个集合元素为止。

如果未指定items属性,则迭代到end指定的值。

step true int 迭代的步长,即每迭代一步的迭代增量。

 

注意:

1:如果指定begin属性,该属性的值必须大于或等于0,否则会抛出java.servlet.jsp.JspTagException异常。

2:如果指定end属性,该属性的值不能小于begin属性的值,否则不会进行迭代操作。

3:如果指定step属性,该属性的值必须大于或等于0,否则会抛出java.servlet.jsp.JspTagException异常。

4:如果items属性的值为null,或items属性指定的集合对象不存在,items属性值将被作为一个空集合对待,不会进行任何迭代操作。

5:如果begin属性值大于或等于集合对象的元素个数,则不会进行迭代操作。

6:如果begin属性值在有效范围内,但end属性值大于或等于集合对象的元素个数,则迭代到集合对象的最后一个元素为止。

7:items属性支持如下的数据类型;

1:任意类型的数组

2:java.util.Collection

3:  java.util.Iterator

4:  java.util.Enumeration

5:  java.util.Map

6:  String

如果items属性值是String类型该字符串必须用逗号分隔。<c:forEach>标签会将以逗号分隔的字符串当做String数组来处理(每一个被逗号分隔的子串相当于String数组中的一个元素)

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    基于springboot共享经济背景下校园闲置物品交易平台源码数据库文档.zip

    基于springboot共享经济背景下校园闲置物品交易平台源码数据库文档.zip

    基于WoodandBerry1和非耦合控制WoodandBerry2来实现控制木材和浆果蒸馏柱控制Simulink仿真.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    emcopy042002.zip

    emcopy042002.zip

    (源码)基于Python的遥感图像语义分割系统.zip

    # 基于Python的遥感图像语义分割系统 ## 项目简介 本项目是一个基于Python的遥感图像语义分割系统,专注于处理和分析遥感图像数据。系统采用HRNet(High Resolution Network)架构,结合多尺度训练和翻转增强等技术,实现对图像的像素级分类,从而完成语义分割任务。 ## 项目的主要特性和功能 1. HRNet架构利用HRNet架构并行处理不同分辨率的特征,有效捕获图像细节和上下文信息,提升分割精度。 2. 多尺度训练支持多尺度训练,通过不同尺度的缩放和裁剪,增加数据多样性,提高模型泛化能力。 3. 翻转增强在训练过程中对图像进行随机翻转,增加数据集多样性,提高模型鲁棒性。 4. 预处理和增强提供多种预处理和增强技术,如随机色调、饱和度、亮度调整,以及平移、缩放、旋转等变换,用于扩充数据集和增强模型性能。

    (源码)基于Spring Boot的博客管理系统.zip

    # 基于Spring Boot的博客管理系统 ## 项目简介 本项目是一个基于Spring Boot框架的博客管理系统,旨在提供一个简单易用的博客平台,支持用户登录认证、文章管理、分类管理、标签管理等功能。项目主要用于学习和实践Spring Boot及相关技术,特别是登录认证和权限管理方面的内容。 ## 项目的主要特性和功能 1. 用户管理 用户注册、登录、信息更新。 用户权限管理,支持超级管理员和普通用户角色。 2. 文章管理 文章的创建、编辑、删除、恢复。 文章的分类和标签管理。 文章的发布状态管理(草稿、已发布、回收站)。 3. 分类管理 分类的添加、删除、更新。 分类信息的查询。 4. 标签管理 标签的添加、删除、更新。 标签与文章的关联管理。 5. 数据统计 文章的浏览量统计。 分类和标签的数据统计。

    基于springboot的中医院问诊系统源码数据库文档.zip

    基于springboot的中医院问诊系统源码数据库文档.zip

    基于SpringBoot+Vue的校园篮球联赛管理系统源码数据库文档.zip

    基于SpringBoot+Vue的校园篮球联赛管理系统源码数据库文档.zip

    基于springboot框架药品购买系统源码数据库文档.zip

    基于springboot框架药品购买系统源码数据库文档.zip

    人工智能开发项目深度学习项目源码带指导视频一起来动动手

    人工智能开发项目深度学习项目源码带指导视频一起来动动手提取方式是百度网盘分享地址

    (源码)基于Spring Boot和Vue的基金管理系统.zip

    # 基于Spring Boot和Vue的基金管理系统 ## 项目简介 本项目是一个基于Spring Boot和Vue框架的基金管理系统,旨在提供一个全面的基金管理解决方案。系统涵盖了基金的各个方面,包括账户管理、交易记录、报表生成、用户权限管理等功能。通过前后端分离的架构,系统能够高效地处理大量数据,并提供友好的用户界面。 ## 项目的主要特性和功能 ### 1. 用户管理 用户注册与登录支持用户注册和登录功能,确保用户身份的安全性。 用户权限管理根据用户角色分配不同的权限,确保系统的安全性。 ### 2. 账户管理 基金账户创建与管理支持创建和管理多个基金账户,记录账户的余额、交易记录等信息。 账户冻结与解冻支持账户的冻结和解冻操作,确保账户的安全性。 ### 3. 交易管理 交易记录管理记录所有的交易操作,包括买入、卖出、转账等。 交易报表生成自动生成交易报表,方便用户查看和分析交易情况。 ### 4. 报表与统计

    springboot316社团服务系统的设计与实现.zip

    论文描述:该论文研究了某一特定领域的问题,并提出了新的解决方案。论文首先对问题进行了详细的分析和理解,并对已有的研究成果进行了综述。然后,论文提出了一种全新的解决方案,包括算法、模型或方法。在整个研究过程中,论文使用了合适的实验设计和数据集,并进行了充分的实验验证。最后,论文对解决方案的性能进行了全面的评估和分析,并提出了进一步的研究方向。 源码内容描述:该源码实现了论文中提出的新的解决方案。源码中包含了算法、模型或方法的具体实现代码,以及相关的数据预处理、实验设计和性能评估代码。源码中还包括了合适的注释和文档,以方便其他研究者理解和使用。源码的实现应该具有可读性、可维护性和高效性,并能够复现论文中的实验结果。此外,源码还应该尽可能具有通用性,以便在其他类似问题上进行进一步的应用和扩展。

    (源码)基于Arduino的蒸发冷却系统.zip

    # 基于Arduino的蒸发冷却系统 ## 项目简介 本项目旨在创建一个蒸发冷却系统(即沼泽冷却器),这是一种在干燥炎热气候下提供能源效率替代空调的系统。该系统使用Arduino 2560和各种传感器来监控和控制冷却过程。 ## 项目的主要特性和功能 水位监控通过水位传感器监控水箱中的水位,并在水位过低时发出警报。 温度和湿度显示在LCD屏幕上显示空气温度和湿度。 风扇控制根据温度范围控制风扇电机。 系统开关通过用户按钮控制系统的开关。 日志记录记录电机激活和停用的时间和日期。 ## 安装使用步骤 2. 硬件连接按照项目文档中的电路图连接所有硬件组件,包括水位传感器、LCD显示屏、实时时钟模块、DHT11传感器和风扇电机。 3. 上传代码将下载的代码上传到Arduino 2560开发板。 4. 启动系统通过用户按钮启动系统,观察LCD屏幕上的温度和湿度显示,并监控水位传感器的状态。

    基于springboot的社区快递上门服务系统源码数据库文档.zip

    基于springboot的社区快递上门服务系统源码数据库文档.zip

    【多智能体任务分配】基于共识的捆绑算法CBBA实现远程太空船RPO 规划任务研究附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于RNN生成文本(自然语言处理)

    此代码基于PTB数据集,实现了一个具有一定泛化能力的语言模型。可指定初始单词和生成单词数生成文本

    【故障诊断】基于改进的稀疏周期组Lasso的轴承故障诊断Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    IEEE 14节点标准模型的柴油发电机、光伏模型、电池储能系统、电弧炉等非线性负载复合微电网模型Simulink仿真.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    JavaScript:模块化编程与CommonJS技术详解

    内容概要:本文详细介绍了JavaScript的模块化编程及其在CommonJS中的实现方法。首先解释了模块化编程的重要性和在JavaScript中的应用,接着具体讲述了CommonJS的规范和实现细节,包括模块的定义、导出、导入及缓存机制。文中还包括了大量的代码示例,帮助读者更好地理解和实践模块化编程的技术要点。此外,还讨论了异步和动态加载模块的方法以及处理循环依赖的最佳实践。 适合人群:具备一定JavaScript基础的开发人员,尤其是对模块化编程和Node.js感兴趣的开发者。 使用场景及目标:帮助开发者掌握JavaScript模块化编程的核心概念和技术,提升代码的可读性、可维护性和可复用性,特别是在大规模项目中。 阅读建议:建议读者跟随文章中的示例逐步实践,深入理解CommonJS规范及其在实际项目中的应用,同时关注ES模块与CommonJS的区别和各自的优缺点。

    基于 Van.js 的简单前端路由组件(支持字符串和正则表达式匹配等).zip

    一个基于 Van.js 的简单前端路由组件。它支持字符串和正则表达式匹配,可以设置页面显示延迟,并且可以配置首次路由匹配(onFirst)和后续路由匹配(onLoad)的事件。该项目使用 TypeScript 实现,提供了简单的 API。 主要功能点 支持字符串和正则表达式匹配 支持设置页面显示延迟 支持配置首次路由匹配(onFirst)和后续路由匹配(onLoad)的事件 使用 TypeScript 实现 提供简单的 API 技术栈 Van.js TypeScript

    (源码)基于Spring Boot和Vue的ELADMIN后台管理系统.zip

    # 基于Spring Boot和Vue的ELADMIN后台管理系统 ## 项目简介 ELADMIN是一个基于Spring Boot 2.1.0、Spring Boot Jpa、JWT、Spring Security、Redis、Vue的前后端分离的后台管理系统。该项目提供了丰富的功能和特性,适用于各种企业级应用的开发。 ## 项目的主要特性和功能 技术栈使用最新技术栈,社区资源丰富。 高效率开发代码生成器可一键生成前后端代码。 数据字典支持数据字典,方便对一些状态进行管理。 接口限流支持接口限流,避免恶意请求导致服务层压力过大。 权限管理支持接口级别的功能权限与数据权限,可自定义操作。 自定义权限注解自定义权限注解与匿名接口注解,可快速对接口拦截与放行。 前端组件封装对一些常用的前端组件进行封装,如表格数据请求、数据字典等。 统一异常处理前后端统一异常拦截处理,统一输出异常,避免繁琐的判断。

Global site tag (gtag.js) - Google Analytics