Professional Documents
Culture Documents
• Erbjuder ett sätt att ytterligare separera presentation från logik genom att
minimera användningen av scriptlets. Består av fyra delbibliotek
– Core Tag Library (core)
Föreläsning 7 • Stöd för villkor, slingor, uttrycksevaluering, inmatning och utmatning.
– Formatting/Internationalization Tag Library (fmt)
• För att hantera datumformat, konverteringar etc.
– Database Tag Library (sql)
• Taggar för att accessa databaser, bör dock ej användas i en driftsatt
JSTL lösning, dataaccessen bör istället ske i JavaBeans eller i EJB:er
– XML Tag Library (xml)
EJB 3.0 • XML stöd
• I JSP 2.0 finns även stöd för EL (Expression Language) så att man kan skriva
<p> Your total, including shipping is ${total+shipping} </p>
• I JSTL (kan adderas till JSP 1.2) måste man istället skriva:
<p> Your total, including shipping is <c:out var="${total+shipping"/></p>
Scriptlet JSTL
<html> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<head> <html>
<title>Count to 10 in JSP scriptlet</title> <head>
</head> <title>Count to 10 Example (using JSTL)</title>
<body>
</head>
<% for(int i=1;i<=10;i++) {%>
<body>
<%=i%><br/>
<c:forEach var="i" begin="1" end="10" step="1">
<% } %>
</body> <c:out value="${i}" /> <br />
</html> </c:forEach>
</body>
</html>
1
Lösningar i EJB 3.0 EJB 3.0
• Removing need for unnecessary interfaces • Har inget HomeInterface och kräver inte
and implementation of callback methods RemoteInterface
• Using metadata annotations instead of • Ingen deployment descriptor
deployment descriptors • ”Annotations”
• Using regular Java classes as EJBs and – Erbjuder en möjlighet att definiera egenskaper
regular business interfaces for EJBs för klasser och metoder, börjar med ”@”. Är en
del av J2SE5.0. Redan över 50 st definierade...
Exempel
@Entity
@Table(name=”spelare")
@NamedQuery(name="findAll",queryString="SELECT OBJECT(p)
FROM spelare p");
public class Player implements java.io.Serializable
{
int id;
@Id
@Column(name = "ID", primaryKey = true, nullable = false)
public String getId()
{
return id;
}
}