Transcript JSTL

JSTL
Tömbszerű elemek a JSP-ben
<%@ page import= "hu.hdi.PhoneNumber" %>
<jsp:useBean id="employee" class="hu.hdi.EmployeeBean"/>
<jsp:useBean id ="messages" class="hu.brasso.Message"/>
<html><body>
<b>Current Employee</b>
<ul>
<li>ID =
<jsp:getProperty name="employee" property="id"/> </li>
<li>NAME =
<jsp:getProperty name="employee" property="lastName"/>&nbsp;
<jsp:getProperty name="employee" property="firstName"/> </li>
<li>MOBIL =
<%= employee.getMobilPhone().toFormattedString() %> </li>
</ul>
<ul>
<%
for(int i=0; i<messages.length; i++) {
String message = messages[i];
%>
<li><%= message %></li>
<% } %>
</ul>
</body></html>
Saját taglib
leíró neve
használt prefix
<%@ taglib uri="/WEB-INF/prim.tld" prefix= "tle" %>
<HTML>
<HEAD>
<TITLE>Some N-digit Primes</TITLE>
</HEAD>
<BODY>
<UL>
<LI>20-digit: <tle:prime length=”20” />
<LI>40-digit: <tle:prime length=”40” />
<LI>80-digit: <tle:prime length=”80” />
<LI>Default (50-digit): <tle:prime />
</UL>
</BODY>
</HTML>
JSTL
• JSTL: Java Standard Tag Library
– taglib-elemek gyűjteménye
– különféle csoportosításban
• Változó: ${expression}
– egyszerű változó:
<c:out value="${firstName}"/>
– objektum eleme:
<c:out value="${employee.name.firstName}"/>
– tömbelem:
<c:out value= ’${company["Ellison"].employee.name.firstName})’/>
Kifejezések értelmezése
• JSTL nélkül
<LI><B>First Name:</B>
<%
Employee employee = ...
%>
<%= employee.getName().getFirstName() %>
• JSTL elemmel
<LI><B>First Name:</B>
<c:out value="${employee.name.firstName}"/>
Beanek használata
• JSTL nélkül
<jsp:useBean id="mail" class="hu.brasso.mailservlet.MailBean" scope="request" />
...
<LI><B>First Name:</B>
<jsp:getProperty name="mail" property="name" />
• JSTL elemmel
<LI><B>First Name:</B>
<c:out
value="${requestScope.mail.name}"/>
Előre definiált változók
Azonosító
pageContext
pageScope
requestScope
sessionScope
applicationScope
param
paramValues
header
headerValues
cookie
initParam
Értelmezés
pageContext.request.servletPath
page hatókörű bean
request hatókörű bean
session hatókörű bean
application hatókörű bean
input-paraméterek nevei
input-paraméter értéke
header-elemek nevei
header-elem értéke
cookie tartalma
context inicializáló paraméterei
JSTL ciklus
• JSTL nélkül
<UL>
<%
for(int i=0; i<messages.length; i++) {
String message = messages[i];
%>
<LI><%= message %>
<% } %>
</UL>
• JSTL elemmel
<UL>
<c:forEach var="message" items="${messages}">
<LI><c:out value="${message}"/>
</c:forEach>
</UL>
JSTL feltételkezelés
<%@ taglib prefix="c” uri="http://java.sun.com/jstl/core" %>
<UL>
<c:forEach var="i" begin="1" end="10">
<LI><c:out value="${i}"/>
<c:choose>
”var” típusú ciklus
<c:when test="${i < 4}">
(small)
</c:when>
<c:when test="${i < 8}">
(medium)
</c:when>
<c:otherwise>
(large)
</c:otherwise>
</c:choose>
</c:forEach>
</UL>
JSTL adatbázis kezelés
<sql:query var="employees">
SELECT * FROM employees
</sql:query>
<UL>
<c:forEach var="row" items="${employees.rows}">
<LI><c:out value="${row.firstname}"/>
<c:out value="${row.lastname}"/>
</c:forEach>
</UL>
JSTL csoportok
• Core
– c:out, c:set, c:if, c:choose, c:when, c:forEach
• URL-lel kapcsolatos tagok
– c:redirect, c:param, c:import
• Nyelv
– fmt:setLocale, fmt:setBundle, fmt:message
• Formázás
– fmt:setTimezone, fmt:formatNumber, fmt:formatDate
• SQL elemek
– sql:query, …
• XML kezelés
– x:parse, …