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

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


前言

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相关标签 流程控制标签和循环标签进行了详细介绍

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

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 2023年版的ideal web项目可能无法使用JSTL标签库的原因有几个可能性。首先,JSTL标签库可能已经过时了。2023年之后,可能出现了一种更先进的技术或解决方案来替代JSTL。其次,2023年版的ideal web项目可能使用了一种与JSTL不兼容的技术栈或框架。这可能是因为新版本的ideal项目需要更高效、更实用的工具来增强开发和部署速度。第三,JSTL标签库可能存在一些安全漏洞或性能问题,因此在新版本的ideal web项目中被禁用或替代。在2023年以后,安全和性能是web项目开发中非常重要的考虑因素。最后,JSTL标签库可能不再符合新版本ideal web项目的设计原则和开发需求。在软件工程领域,技术不断发展,对新版本的web项目来说,可能需要一些更新的工具和方法来更好地满足项目的需求。综上所述,2023年版的ideal web项目可能无法使用JSTL标签库的原因有多种可能性,可能是因为技术的推进、安全性能方面的考虑以及项目本身的要求。 ### 回答2: 2023版本的ideal网页项目无法使用JSTL标签库。JSTLJavaServer Pages 标准标签库)是用于简化JSP页面开发的一组标签,用于执行常见的Servlet和JSP开发任务,例如条件判断、循环、数据库访问等。然而,在2023版本的ideal网页项目中,JSTL标签库不再适用。 新的版本可能采用了其他更先进的技术或框架来代替JSTL标签库。可能的替代方案包括使用JavaScript库如jQuery或React来处理页面的渲染和交互,或者使用服务器端的模板引擎如Thymeleaf或Freemarker来生成动态的HTML页面。 使用这些新的技术可以提供更好的性能和更好的用户体验。例如,使用JavaScript库可以在客户端实现更流畅的页面交互,而模板引擎可以提供更灵活和易于维护的视图层代码。 虽然无法使用JSTL标签库可能需要一些学习和适应的过程,但这也是技术发展的一部分。随着时间的推移,新的技术和框架会出现并取代旧的解决方案。重要的是开发人员要持续学习和适应最新的技术趋势,以便能够适应和应对不断变化的软件开发环境。 ### 回答3: 2023版ideal的web项目无法使用JSTL标签库可能是因为该版本的ideal框架不再支持JSTL标签库,或者在该版本中JSTL标签库存在某些问题无法正常使用JSTLJavaServer Pages Standard Tag Library)是Java服务器页面的标准标签库,它提供了一系列标签和函数,用于简化JSP页面的开发。它可以用于在JSP页面中进行条件判断、循环处理和格式化输出等常见操作。 如果2023版ideal的web项目无法使用JSTL标签库,可能开发者需要考虑其他替代方案来实现相应的功能。一种可能的替代方案是使用Java代码来手动实现JSTL标签库提供的功能。比如,可以使用if-else语句来进行条件判断,使用for循环来进行循环处理,使用Java的日期处理类来格式化输出等。 另外,还可以考虑使用其他类似的标签库来替代JSTL标签库。比如,Apache的Taglibs标签库和SpringSpring标签库都提供了类似的功能,可以在适当的情况下进行选择使用。 总之,如果2023版ideal的web项目无法使用JSTL标签库,开发者需要查看该版本的文档或开发者社区,了解具体的原因和解决方案,并根据实际情况选择合适的替代方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

showswoller

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值