JSTL教程,JSTL标签示例

时间:2020-02-23 14:33:53  来源:igfitidea点击:

JSTL代表JSP标准标记库。
JSTL是标准的标记库,它提供用于控制JSP页面行为的标记。
JSTL标签可用于迭代和控制语句,国际化,SQL等。
我们将在此JSTL教程中详细研究JSTL标签。

前面我们看到了如何使用JSP EL和JSP动作标签来编写HTML之类的JSP代码,但是它们的功能非常有限。
例如,我们不能使用EL或者操作元素循环浏览集合,也无法逃脱HTML标签以在客户端将其显示为文本。
这是JSTL标签派上用场的地方,因为我们可以从JSTL标签做更多的事情。

JSTL

JSTL是Java EE API的一部分,并包含在大多数Servlet容器中。
但是要在我们的JSP页面中使用JSTL,我们需要为您的servlet容器下载JSTL jar。
大多数时候,您可以在服务器下载的示例项目中找到它们,并可以使用它们。
您需要将这些库包含在Web应用程序项目WEB-INF/lib目录中。

JSTL罐子

JSTL jar是特定于容器的,例如在Tomcat中,我们需要在项目构建路径中包含jstl.jarstandard.jarjar文件。
如果它们在容器lib目录中不存在,则应将它们包含在应用程序中。
如果您有Maven项目,则应在pom.xml文件中添加以下依赖项,否则在JSP页面中将出现以下错误– eclipse找不到" https://java.sun.com/jsp/jstl/core"

<dependency>
	<groupId>jstl</groupId>
	<artifactId>jstl</artifactId>
	<version>1.2</version>
</dependency>
<dependency>
	<groupId>taglibs</groupId>
	<artifactId>standard</artifactId>
	<version>1.1.2</version>
</dependency>

JSTL标签

基于JSTL函数,它们分为五种类型。

  • JSTL核心标签:JSTL核心标签提供对迭代,条件逻辑,捕获异常,URL,转发或者重定向响应等的支持。
    要使用JSTL核心标签,我们应将其包含在JSP页面中,如下所示。

在本文中,我们将研究重要的JSTL核心标签。

  • JSTL格式和本地化标签:提供了JSTL格式标签,用于通过语言环境和资源包格式化数字,日期和i18n支持。
    我们可以使用以下语法在JSP中包含这些jstl标记:
  • JSTL SQL标记:JSTL SQL标记提供与Oracle,MySql等关系数据库交互的支持。
    使用JSTL SQL标记,我们可以运行数据库查询,我们在JSP中使用以下语法包括这些JSTL标记:
  • JSTL XML标签:JSTL XML标签用于处理XML文档,例如解析XML,转换XML数据和XPath表达式求值。
    在JSP页面中包括JSTL XML标签的语法是:
  • JSTL功能标签:JSTL标签提供了许多我们可以用来执行常见操作的功能,其中大多数用于字符串操作,例如字符串连接,拆分字符串等。
    在JSP页面中包含JSTL函数的语法是:

请注意,所有JSTL标准标记URI都以https://java.sun.com/jsp/jstl /开头,我们可以使用所需的任何前缀,但是最佳做法是使用上面定义的前缀,因为每个人都使用它们,因此它不会造成任何混乱。

JSTL核心标签

下表列出了JSTL核心标记。

JSTL Core TagDescription
<c:out>To write something in JSP page, we can use EL also with this tag
<c:import>Same as <jsp:include> or include directive
<c:redirect>redirect request to another resource
<c:set>To set the variable value in given scope.
<c:remove>To remove the variable from given scope
<c:catch>To catch the exception and wrap it into an object.
<c:if>Simple conditional logic, used with EL and we can use it to process the exception from <c:catch>
<c:choose>Simple conditional tag that establishes a context for mutually exclusive conditional operations, marked by <c:when> and <c:otherwise>
<c:when>Subtag of <c:choose> that includes its body if its condition evalutes to 'true'.
<c:otherwise>Subtag of <c:choose> that includes its body if its condition evalutes to 'false'.
<c:forEach>for iteration over a collection
<c:forTokens>for iteration over tokens separated by a delimiter.
<c:param>used with <c:import> to pass parameters
<c:url>to create a URL with optional query string parameters

JSTL教程

让我们看看一个简单的Web应用程序中一些JSTL核心标签的用法。
我们的项目将包括一个Java Bean,我们将创建一个对象列表并设置一些将在JSP中使用的属性。
JSP页面将显示如何使用带EL的条件逻辑和其他一些常见用法对集合进行迭代。

JSTL教程– Java Bean类

<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>

JSTL教程– Servlet类

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

JSTL教程– JSP页面

home.jsp代码:

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

现在,当我们使用URLhttps://localhost:8080/JSTLExample/HomeServlet运行应用程序时,我们将得到如下所示的响应。

在上面的JSTL示例中,我们使用c:catch来捕获JSP服务方法中的异常,这与带有错误页面配置的JSP异常处理不同。