Conditionally Generating Output Using JSTL in a JSP Page

Any non-JSP code in a JSP file is called template text and is automatically written to the output stream. The JSTL tags <c:if> and <c:choose> make it possible to dynamically generate template text depending on a condition. The <c:if> tag generates its body if the expression in the test attribute evaluates to the boolean value true or the string value "true":
<%-- Declare the core library --%> <%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %> <%-- Simple if conditions --%> <c:if test='${param.p == "someValue"}'> Generate this template text if p equals someValue </c:if> <c:if test='${param.p}'> Generate this template text if p equals "true" </c:if>
An if/else action requires the use of the <c:choose> tag:
<%-- A simple if/else condition --%> <c:choose> <c:when test='${param.p == "someValue"}'> Generate this template text if p equals someValue </c:when> <c:otherwise> Otherwise generate this template text </c:otherwise> </c:choose>
Multiple conditions can be evaluated using the <c:choose> tag:
<c:choose> <c:when test='${param.p == "0"}'> Generate this template text if p equals 0 </c:when> <c:when test='${param.p == "1"}'> Generate this template text if p equals 1 </c:when> <c:otherwise> Generate this template text if p equals anything else </c:otherwise> </c:choose>
The <c:out> can also be used to conditionally generate template text. If the value attribute is null, a default value (if specified) is generated. The default value can be specified using the default attribute or can be specified in the body content. This example demonstrates both methods:
<%-- Default value in an attribute --%> <c:out value='${param.p}' default="Generate this if p is null" /> <%-- Default value in the body content --%> <c:out value='${param.p}'> Generate this if p is null </c:out>

Comments

24 Feb 2010 - 12:03am by Anonymous (not verified)

Thank you.

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.