Mit JSP ist kann man sogenannte Tags defineren, diese erledigen bestimmte JAVA-Aktionen. Die Tags sind in XML formatiert. Die JSTL (Java Standard Tag Libary) ist eine vorgefertigte Tag-Library, die die wesentlichen JAVA-Kontrollstrukturen definiert. Mit deren Verwendung ist es möglich in der JSP-Seite ganz auf Java zu verzichten. Mit der JSTL kann man bequem auf Beans zugreifen.
Die JSTL-Dateien müssen zur Webapplikation hinzugefügt werden
+ webapps +
|
+ myapp +
| .
| .
| + lib +
| jstl.jar
| standard.jar
|
In der JSP-Datei ist nun kein Java-Code mehr notwendig.
jstl.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<jsp:useBean id="mb" class="myutil.User" scope="session"/>
<html><body>
<c:set var="act" value="${param.act}"/>
<c:if test="${act == null || act == 'loginmask'}">
<form action=jstl.jsp method="post"><table cellpadding=3>
<tr><td><b>Benutzer:<td><input type="text" name="name" size="15" value="Huber"></tr>
<tr><td><b>Passwort:<td><input type="password" name="pass" size="15" value="passme"></tr>
<tr><td colspan=2 ><input type="submit" value="Anmelden"></tr>
</table><input type="hidden" name="act" value="login"></form>
</c:if>
<c:if test="${act == 'login'}">
<c:set target="${mb}" property="name" value="${param.name}"/>
<c:set target="${mb}" property="pass" value="${param.pass}"/>
<c:choose>
<c:when test="${mb.passCheck}">
<h2>Anmeldung erfolgreich</h2>
<a href="jstl.jsp?act=main">Weiter</a>
</c:when>
<c:otherwise>
<h2>Anmeldung fehlgeschlagen</h2>
<a href=jstl.jsp>Zum Anmelden</a>
</c:otherwise>
</c:choose>
</c:if>
<c:if test="${act == 'main'}">
<h2>Hauptbereich von ${mb.name}</h2>
<h3>Termine</h3>
<table cellspacing=0 cellpadding=4 border=1>
<c:forEach var="i" items="${mb.termine}">
<tr><td>${i[0]}</td><td>${i[1]}</td></tr>
</c:forEach>
</table>
</c:if>
<p>Beispiel mittels einer <i>Bean</i> und der <i>JSTL</i></p>
Hinweise
Aktuellen Dateinamen ermitteln und werwenden
<c:set var="path" value="${pageContext.request.requestURI}"/>
<form method="post" action="${path}">
.
</form>
Mehrfache Parmeter abfragen (Checkbox)
${paramValues.user}