JSTL (JSP Standard Tag Library)

Introductie

Dit is een artikel uit een reeks over JSP . Zie ook de volgende delen :

JSTL voorziet in een JSP uitbreiding van een aantal mogelijke tags die een nettere structuur opleveren waarbij de JSP pagina’s minder door code worden vervuild. Per slot van rekening moet een pagina met name een representatie voorstellen.
JSTL biedt de volgende tag libraries:

• core: loops, condities, input/output, etc.
• fmt: Internationalisatie en formats zoals currency en date/time.
• xml: XML verwerking
• sql: database toegang.
• fn: diverse standaard functies

core : programmeer constructies

De JSTL core library voorziet in tags voor programmeer constructies.
De library wordt toegevoegd met:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Output

<c:out value="${salary}"/>

Variabele declaratie

<c:set var="var" scope="session" value="..."/>

Condities

<c:if test="${inkomen > 4000}">
…..
</c:if>

<c:choose>
     <c:when test="${leeftijd < 10}">
     ...
     </c:when>
    <c:when test="${leeftijd >= 10}">
    ...
    </c:when>
    <c:otherwise>
    </c:otherwise>
</c:choose>

Loops

<c:forEach var="item" items="collection">
…
</c:forEach>

<c:forEach begin="0" end="10" varStatus="status" step="1" >
…
</c:forEach>

Redirect

<c:redirect url="http://www.google.com"/>

fmt (formats)

De JSTL fmt library voorziet in tags voor het instellen van formats.
De library wordt toegevoegd met:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

formatNumber

<fmt:formatNumber type="number" maxIntegerDigits="3" value="${waarde}" />
<fmt:formatNumber type="number" maxFractionDigits="3" value="${waarde}" />
<fmt:formatNumber type="number" groupingUsed="false" value="${waarde}" />

<fmt:formatNumber type="percent" maxIntegerDigits="3" value="${waarde}" />
<fmt:formatNumber type="percent" minFractionDigits="10" value="${waarde}" />
<fmt:formatNumber type="percent" maxIntegerDigits="3" value="${waarde}" />
<fmt:formatNumber type="number" pattern="###.###E0" value="${waarde}" />

<fmt:setLocale value="en_US"/>
<fmt:formatNumber type="currency" value="${waarde}" /></p>

parseNumber

<fmt:parseNumber var="g" type="number" value="${waarde}" />
<p>Getal : <c:out value="${g}" /></p>
<fmt:parseNumber var="g" integerOnly="true" type="number" value="${waarde}" />
<p>Getal : <c:out value="${g}" /></p>
<fmt:parseNumber var="b" type="currency" value="${waarde}" />
<p>Bedrag : <c:out value="${b}" /></p>

formatDate

<fmt:formatDate type="time" value="${ new java.util.Date() }" />
<fmt:formatDate type="date" value="${ new java.util.Date() }" />
<fmt:formatDate type="both" value="${ new java.util.Date() }" />

<fmt:formatDate pattern="yyyy-MM-dd" value="${ new java.util.Date() }" />

parseDate

<fmt:parseDate value="${new java.util.Date()}" var="pd" pattern="dd-MM-yyyy" />
<p>Datum : <c:out value="${pd}" /></p>

<fmt:timeZone>	Stelt time zone in
<fmt:message>	Internationalisatie van message
<fmt:bundle>		Laadt resource bundle

xml (xml verwerking)

De JSTL xml library voorziet in tags voor xml bewerkingen.
De library wordt toegevoegd met:

<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

Voor deze taglibrary moeten aanvullend de volgende libraries aanwezig zijn:
XercesImpl.jar
Xalan.jar

sql (sql gebruik)

De JSTL sql library voorziet in tags voor het gebruiken van sql.
De library wordt toegevoegd met:

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

Voorbeeld:

<sql:setDataSource var="ds" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/mydb"
     user="root"  password="secret"/>

<sql:query dataSource="${ds}" var="res">
    SELECT * from Employee;
</sql:query>

<table border="1" width="100%">
  <tr>
    <th>Id</th>
    <th>Voornaam</th>
    <th>Achternaam</th>
    <th>Geboortedatum</th>
  </tr>

  <c:forEach var="row" items="${res.rows}">
    <tr>
      <td><c:out value="${row.employeeId}"/></td>
      <td><c:out value="${row.firstName}"/></td>
      <td><c:out value="${row.lastName}"/></td>
      <td><c:out value="${row.birthDate}"/></td>
    </tr>
  </c:forEach>
</table>

fn (functie bibliotheek)

De JSTL fn library voorziet in tags voor diverse standaard functies.
De library wordt toegevoegd met:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

Enkele voorbeelden:

${fn:length(stringvalue)}

${fn:contains(stringvalue, 'abc')}

${fn:indexOf(stringvalue, ‘abc’)}

${fn:replace(stringvalue, 'abc', 'efg')}

${fn:substring(stringvalue, 3, 12)}

${fn:trim(stringvalue)}
This entry was posted in JEE, JSP and tagged . Bookmark the permalink.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd.

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>