01 <%@ include file="_pages.jspf"%>
02 <%@ include file="/template/head.jspf"%>
03 <%!
04 /** Unsere Bean ist eine eigene Klasse, deshalb beginnt sie mit
05 * dem Schl?sselword: "class".
06 * Es folgt ihr Klassenname "SampleBean".
07 * "implements java.io.Serializable" ist die Anzeige an das
08 * Java-Runtime, dass diese Klasse serializiert werden kann.
09 * Wir brauchen f?r die Serializierung nichts weiter zu tun,
10 * wenn alle Felder der Klasse (=globalen Variablen)
11 * serializierbar sind. */
12 class SampleBean implements java.io.Serializable {
13
14 /** Aller Felder der Klasse werden mit dem Schl?sselwort
15 * "private" gekennzeichnet. Sie erreichen dadurch,
16 * dass sie ausserhalb der Klasse nicht sichtbar sind. */
17 private int value=0;
18 private boolean valid=false;
19
20 /** Klassen sollten immer einen Wert bekommen und sei
21 * es auch nur "null". Vermeiden Sie Statements wie:
22 * "private String name,notVisibleToContainer;"
23 * damit haben Sie zwar zwei Strings in einer Zeile
24 * definiert, aber sich auch die Chance auf eine Menge
25 * ?rger eigehandelt. */
26 private String name=null;
27 private String notVisibleToContainer=null;
28
29 /** Dies ist unser Konstruktor nach Beans-Spezifikation.
30 * Er ist public, d.h. im Prinzip von jeder Klasse in jedem package
31 * aus zu erreichen und erfordert keine Parameter. Der Container
32 * (Tomcat) kann damit das Objekt erzeugen.*/
33 public SampleBean() {
34 }
35
36 /** Ein weiterer Konstruktor, den wir "von Hand" benutzen
37 * k?nnen, um etwas Schreibarbeit zu sparen. */
38 public SampleBean(String aName,int aValue) {
39 name=aName;
40 value=aValue;
41 valid=true;
42 }
43
44 /** Die setter-Methoden f?r alle Eigenschaften (Felder) der Bean,
45 * die der Container kennen soll und auf die man von aussen
46 * Zugriff haben soll. Sie sind public, haben keinen R?ckgabewert
47 * (void) und der Methodenname entspricht dem Namen des Feldes.
48 * Ihr Parameter entspricht dem Typ des Feldes. */
49 public void setName(String aName) {
50 this.name=aName;
51 }
52 public void setValue(int aValue) {
53 this.value=aValue;
54 }
55 public void setValid(boolean isValid) {
56 this.valid=isValid;
57 }
58
59 /** Die getter-Methoden. Sie sind ebenfalls public, ihr R?ckgabewert
60 * entspricht dem Typ des Feldes, ihr Methodenname setzt sich aus
61 * get+Feldname zusammen und sie haben keinen Parameter. */
62 public String getName() {return name;}
63 public int getValue() {return value;}
64
65 /** Die Ausnahme: Der Getter f?r boolsche Werte heist nicht
66 * getBoolean(), sonder isBoolean(). */
67 public boolean isValid() {
68 return valid;
69 }
70
71 /** Tip:
72 * ?berschreiben Sie die Methode public String toString()
73 * aus java.lang.Object (von dieser Klasse sind ja bekanntlich
74 * alle Java.Klassen abgeleitet.), um eine aussagekr?ftige
75 * Ausgabe von Objekten Ihrer Klassen zu erhalten. */
76 public String toString() {
77 return "Name="+getName()+" value="+getValue()+" valid="+isValid();
78 }
79 }
80 %>
81 <pre>
82 <%=new SampleBean()%>
83 <%= new SampleBean("JSP-Kurs",1)%>
84 <%
85 SampleBean myBean=new SampleBean();
86 myBean.setName("Meine Bean");
87 myBean.setValid(true);
88 out.println(myBean);
89 %>
90 </pre>
91 <%@ include file="/template/tail.jspf"%>
|