JSP Standard Tag Library (JSTL)是一个标准的标签库用来控制jsp的行为、迭代和控制表现、国际化以及sql等。
JSTL是javaEE的一部分并被绝大部分servlet容易所包含,但当我们用到时需要下载jstl的jar才能在容器中使用。大部分时间,我们可以在事例程序下找到他们,你需要把他们放到你工程的WEB-INF/lib目录下就可以了。这些jar就会被容器所找到,例如在tomcat下你需要jstl.jar 和 standard.jar。并加入到build path下才可以。
JSTL包含以下五类:
1、Core Tags:核心标签提供包含迭代、逻辑判断、异常、url、以及跳转等。你只需要在你的jsp页面包含以下代码就可以:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
2、Formatting and Localization Tags:这个是用来提供格式化数字、日期i18n从本地。只需要加入下面代码
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
3、SQL Tags:这个是对关系型数据库的支持。例如mysql、oracle等等。之需要加入以下代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
|
4、XML Tags: 主要用户XML文档。例如解析XML,转换xml数据和Xpath表达式等。需要加入如下代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
|
5、JSTL Functions Tags:function 标签用于一些操作逻辑,多数用于String 操作,例如spli等:需要加入以下代码:
|
所有的标签都是以http://java.sun.com/jsp/jstl/开始的。
JSTL Core Tags
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 |
来看事例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
当访问http://localhost:8080/JSTLExample/HomeServlet这个servlet的时候,我们会看到下面的结果