Tutorials : A Brief Introduction to Struts – Expression Language :

Core Tags:

Core tags define some core functions that are useful on JSP pages. Like checking for equality, checking for null, if/else statements etc.

<c:if test = "${someColl.size() > 0 }">
	Do something with  the collection 
</c:if>

If a series of if statements need to be executed then the c:choose and c:when tags can be used.

<c:choose>
<c:when test="${someval = 1}">
	Do something  
<c:when>
<c:when test="${someval = 12}">
	Do something else 
<c:when>
<c:otherwise>
	Nothing matched then do the default something	
<c:otherwise>
</c:choose>

This is very similar to the switch case in Java language. The first "when" expression that evaluates to be true is executed. If no match is found then the otherwise tag is executed.

One of the most common functions done on a JSP page is iterating through collections and displaying data.

<c:forEach var="valueInColl" items="theColl" varStatus="myColl">
	<c:out value="${valueInColl}" />
</c:forEach>

The forEach supports all types of java.util.Collection objects including, maps, sets and lists. Arrays of objects and arrays of primitive data types are also supported. Primitive data types are supported by converting the primitive data type to the corresponding java object using their corresponding wrapper classes. Int is converted to the wrapper class Integer and double is converted to Double. ForEach also supports a comma separated string of values stored in a String object. ResultSet objects are not supported by this tag. If a collection has null objects then the iteration is skipped.

Another tag used for iteration is the c:forTokens tag:

<c:forTokens items="stringOfTokens" delims="delimiters">
Execute this
</c:forTokens>

This tag internally uses the java.util.StringTokenizer class to create tokens and iterate through them. In addition to all these operations the forEach tag provides an optional attribute called varStatus. This variable will have an object of type javax.servlet.jsp.jstl.core.LoopTagStatus which can be used to query the status of the looping operation. This interface has convenient methods like getCurrent() which returns the current object, getCount() which will give the current count the iteration has completed and getIndex() which will return the current index of the selected value in the loop. Other methods in the interface include isFirst() and isLast().

<c:forEach var="valueInColl" items="theColl" varStatus="myColl">
	<c:if test="${myColl.Index == 5}">
      <c:out value="You are a Gold Customer" />
      <c:if>
</c:forEach>

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.