Updated April 6, 2023
Introduction to JSTL In Java
JSTL abbreviated as Java Standard Tag Library, which is a further extension for JSP (Java Server Pages). JSTL reduced the lines of code for the developer. This JSTL supports for structural tasks, a common task like conditional and iteration. These tags used for changing I18N (Internationalization) tags, SQL tags, XML documents, etc. This also provides a framework for attaching the already existing custom tags within the Java Standard Tag Library.
Advantages of JSTL:
- Fast Development.
- Code Reusability.
- No need to use a scriptlet tag.
How does JSTL Work in Java?
JSTL works based on the type of tag we have used in our application. It consists of around 5 types of tags. They are
- Core tags
- Function tags
- Formatting tags
- XML tags
- SQL tags
JSTL tags Description:
Tag Type | Description | URI to include | prefix |
Core tags | The JSTL core tag provides flow control, variable support, URL management etc. | http://java.sun.com/jsp/jstl/core | c |
Function tags | This function tag is used for String manipulation and String length |
http://java.sun.com/jsp/jstl/ functions |
fn |
Formatting tags | This formatting tag is used for number, date and message formatting | http://java.sun.com/jsp/jstl/fmt | fmt |
XML tags | This XML tag is used for transformation and flow control etc. | http://java.sun.com/jsp/jstl/xml | x |
SQL tags | This SQL tag is used to provide support for SQL support. | http://java.sun.com/jsp/jstl/sql | sql |
Each JSTL tag have again consisting of different sub tags. Now time being, we will some of the examples of core tags and function tags.
Examples
Following are the examples are given below:
Project Structure in eclipse:
Example #1 – Core tag c:out
Code: NewFile.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<!--THis c:out tag is used for displaying output-->
<c:out value="${'Hello Amardeep, Wel come to EDUCBA online courses.'}" />
</body>
</html>
Output:
Example #2 – Core tag set and c:if tags
Code: SetCIf.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:set var="money" scope="session" value="${5000*5}"/>
<c:if test="${money > 8000}">
<p>My Salary is: <c:out value="${money}"/><p>
</c:if>
</body>
</html>
Output:
Example #3 – Core tag with c:choose tag
Code: CChoose.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:set var="money" scope="session" value="${5000*5}"/>
<p>Your income is : <c:out value="${money}"/></p>
<c:choose>
<c:when test="${money <= 1000}">
You are paid with good salary.
</c:when>
<c:when test="${money > 10000}">
You are paid with really good salary.
</c:when>
<c:otherwise>
You are paid with low salary .
</c:otherwise>
</c:choose>
</body>
</html>
Output:
Example #4 – Core tag with c:when tag
Code: CWhen.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:set value="214" var="digit"></c:set>
<c:choose>
<c:when test="${digit%2==0}">
<c:out value="${digit} is EVEN digit"></c:out>
</c:when>
<c:otherwise>
<c:out value="${digit} is ODD digit"></c:out>
</c:otherwise>
</c:choose>
</body>
</html>
Output:
Example #5 – Core tag with c:foreach tag
Code: CForeach.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:forEach var="iterator" begin="100" end="110">
Count: <c:out value="${iterator}" />
<p>
</c:forEach>
</body>
</html>
Output:
Example #6 – Core tag with c:forTokens tag
Code: CForTokens.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:forTokens items="My-Name-is-Nathi-Paramesh" delims="-" var="del">
Word: <c:out value="${del}" />
<p>
</c:forTokens>
</body>
</html>
Output:
Example # 7 – Core tag with c:redirect tag
Code: CRedirect.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:set var="urlName" value="2" scope="request"/>
<c:if test="${urlName<1}">
<c:redirect url="http:/educba.com"/>
</c:if>
<!-- Page directly redirect to gmail because value is greater than 1 -->
<c:if test="${urlName>1}">
<c:redirect url="http://gmail.com"/>
</c:if>
</body>
</html>
Output:
Example #8 – Function tag with c:contains tag
Code: FunctionContains.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:set var="StringType"
value="We are learning online course from EDUCBA platform" />
<c:if test="${fn:contains(StringType, 'EDUCBA')}">
<h1 style="color: green">Yes Given String found in the value
</h1>
<p style="color:blue;border: 1px solid red;font-size:20px">JSTL abbreviated as Java Standard Tag Library. Which is
further extension for JSP (Java Server Pages). JSTL reduced the lines
of code for developer. This JSTL supports for structural tasks,
common task like conditional and iteration. This tags used for
changing I18N (Internationalization) tags, SQL tags, XML documents
etc. This JSTL also provides a framework for attaching the already
existing custom tags within the Java Standard Tag Library.</p>
</c:if>
<c:if test="${fn:contains(StringType, 'courses')}">
<p>No Given String is not found in the value
<p>
</c:if>
</body>
</html>
Output:
Example # 9 – Function tag with c:endsWith tag
Code: CEndsWith.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<c:set var="StringType"
value="We are learning online course from EDUCBA platform" />
<c:if test="${fn:endsWith(StringType, 'platform')}">
<h1 style="color: red">Yes String ends with platfrom.</h1>
<p style="color: fuchsia; border: 1px solid red; font-size: 20px">JSTL
abbreviated as Java Standard Tag Library. Which is further extension
for JSP (Java Server Pages). JSTL reduced the lines of code for
developer. This JSTL supports for structural tasks, common task like
conditional and iteration. This tags used for changing I18N
(Internationalization) tags, SQL tags, XML documents etc. This JSTL
also provides a framework for attaching the already existing custom
tags within the Java Standard Tag Library.</p>
</c:if>
<c:if test="${fn:endsWith(String, 'are')}">
<p>String ends with are.
<p>
</c:if>
</body>
</html>
Output:
Recommended Articles
This is a guide to JSTL In Java. Here we also discuss the Introduction and how does it work in java, along with different examples and its code implementation. You may also have a look at the following articles to learn more –