JSTL教程,JSTL标签示例
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.jar
和standard.jar
jar文件。
如果它们在容器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 Tag | Description |
---|---|
<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异常处理不同。