Dieser Artikel beschreibt die Verwendung von JavaBeans innerhalb von JSP-Seiten. Bei den hier verwendeteten JavaBeans handelt es sich nicht um die sogenannten Enterprise Java Beans (EJB) sondern um die "einfacheren" simplen JavaBeans. Die Verwendung von JavaBeans innerhalb einer JSP soll in diesem Artikel anhand eines Beispielprogrammes erlätert werden.
Für das Beispielprogramm wird folgende Projektstruktur im Tomcat benötigt, die mit einem Dateimanager erzeugt werden kann:
<tomcat> ... +webapps ... +beanexample +WEB-INF +classes ... ...
Nachfolgend der Quelltext des Java Beans, welches von der Beispiel JSP aus verwendet werden soll. Wichtig dabei ist, dass das Bean in einem Package liegt, da das Default-Package zumindest unter Tomcat nicht funktioniert.
package de.timpt; import java.io.*; public class SimpleBean implements Serializable{ private String aStringValue; private double aDoubleValue; public SimpleBean(){ aStringValue = "A Simple Bean"; aDoubleValue = 132.23; } public String getAStringValue(){ return aStringValue; } public void setAStringValue(String aStringValue){ this.aStringValue = aStringValue; } public double getADoubleValue(){ return aDoubleValue; } public void setADoubleValue(double aDoubleValue){ this.aDoubleValue = aDoubleValue; } }
Nach dem compilieren muss die class-Datei ins classes-Verzeichnis der Webanwedung unter Beibehaltung der Package-Struktur kopiert werden (sofern es nicht direkt dort kompiliert wird). Das SimpleBean muss demnach im folgenden Verzeichnis zu finden sein:
<tomcat>/webapps/beanexample/WEB-INF/classes/de/timpt/SimpleBean.class
Nachfolgend die JSP Seite, welche das SimpleBean verwendet:
<jsp:useBean id="mybean" class="de.timpt.SimpleBean" scope="page"/> <html> <body> <h1>Bean Example</h1> <jsp:getProperty name="mybean" property="AStringValue"/> <br> <jsp:getProperty name="mybean" property="ADoubleValue"/> </body> </html>
Mit der JSP-Aktion jsp:useBean
in Zeile 01 wird das Bean
der JSP zur Verwendung bekannt gemacht. Der Parameter id
legt
dabei den Namen fest, unter dem das Bean in der JSP angesprochen werden kann.
Der Parameter class
legt die zum Bean zugehörige Klasse fest,
wobei die Endung ".class" nicht mit angegeben wird. Mit dem
Parameter sc
wird der Gültigkeitsbereich des Beans spezifiziert.
ope
Um nun die Attribute des Java Beans auszulesen wird die Java-Aktion
jsp:getProperty
verwendet. Der Parameter name
legt dabei den Namen des Beans fest (mit id
in Zeile 01 festgelegt)
und der Parameter property
legt die auszuwertende Methode fest.
Beim Parameter property
werden sowohl die führenden "get"
sowie die zugehörigen Klammern nicht mit angegeben.
Die JSP-Aktion jsp:getProperty
finden in der Beispiel-JSP, in den
Zeilen 05 und 07, Anwendung.
Um ein Attribut innerhalb eines Beans zu setzten wird die JSP-Aktion
<jsp:setProperty>
verwendet.
Die folgenden Attribute legen hierbei fest, welches Attribut eines Beans mit welchem
Wert belgt werden soll:
name
:<jsp:useBean>
definiert wurde.
property
:<jsp:getProperty>
gelten.
value
:param
:param
und value
nicht gesetzt,
wird nach einem mit gleichem Namen lautender Request-Parameter gesucht.
Java Beans können folgende Gültigkeitsbereiche haben:
Der Gültigkeitsbereichs eines Java Beans wird bei der JSP-Aktion jsp:useBean
im Attribut scope
festgelegt. Der Standardwert für scope
ist page
.