akademie.de
 home/bsp/kap2/samplebean.jsp

session_simple.jsp session_login2.jsp session_login.jsp samplebean.jsp register1.jsp
 Name=null value=0 valid=false
 Name=JSP-Kurs value=1 valid=true
 Name=Meine Bean value=0 valid=true

 


 Source

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"%>



<%include file="_pages.jspf"%>
<%include file="/template/head.jspf"%>
<%! 
  /**  Unsere Bean ist eine eigene Klasse, deshalb beginnt sie mit 
  *  dem Schl?sselword: "class".
  *  Es folgt ihr Klassenname "SampleBean".
  *  "implements java.io.Serializable" ist die Anzeige an das
  *  Java-Runtime, dass diese Klasse serializiert werden kann.
  *  Wir brauchen f?r die Serializierung nichts weiter zu tun,
  *   wenn alle Felder der Klasse (=globalen Variablen) 
  *  serializierbar sind. */
    class SampleBean implements java.io.Serializable {
    
    /** Aller Felder der Klasse werden mit dem Schl?sselwort 
    *  "private" gekennzeichnet. Sie erreichen dadurch,
    *  dass sie ausserhalb der Klasse nicht sichtbar sind.    */
        private int value=0;
    private boolean valid=false;
    
    /**  Klassen sollten immer einen Wert bekommen und sei
    *  es auch nur "null". Vermeiden Sie Statements wie:
    *  "private String name,notVisibleToContainer;"
    *  damit haben Sie zwar zwei Strings in einer Zeile
    *  definiert, aber sich auch die Chance auf eine Menge
    *  ?rger eigehandelt. */
        private String name=null;
    private String notVisibleToContainer=null;
    
    /** Dies ist unser Konstruktor nach Beans-Spezifikation.
    *  Er ist public, d.h. im Prinzip von jeder Klasse in jedem package 
    *  aus zu erreichen und erfordert keine Parameter. Der Container
    *   (Tomcat) kann damit das Objekt erzeugen.*/
        public SampleBean() {
        }
    
    /** Ein weiterer Konstruktor, den wir "von Hand" benutzen
    *  k?nnen, um etwas Schreibarbeit zu sparen.    */
    public SampleBean(String aName,int aValue) {
      name=aName;
      value=aValue;
      valid=true;
    }
        
    /** Die setter-Methoden f?r alle Eigenschaften (Felder) der Bean,
    *  die der Container kennen soll und auf die man von aussen 
    *  Zugriff haben soll. Sie sind public, haben keinen R?ckgabewert
    *  (void) und der Methodenname entspricht dem Namen des Feldes. 
    *  Ihr Parameter entspricht dem Typ des Feldes. */
        public void setName(String aName) {
            this.name=aName;
        }
        public void setValue(int aValue) {
            this.value=aValue;
        }
        public void setValid(boolean isValid) {
      this.valid=isValid;
    }
    
    /**  Die getter-Methoden. Sie sind ebenfalls public, ihr R?ckgabewert
    *  entspricht dem Typ des Feldes, ihr Methodenname setzt sich aus
    *  get+Feldname zusammen und sie haben keinen Parameter. */
    public String getName() {return name;}
        public int getValue() {return value;}
    
    /**  Die Ausnahme: Der Getter f?r boolsche Werte heist nicht
    *  getBoolean(), sonder isBoolean(). */
    public boolean isValid() {
      return valid;
    }
    
    /** Tip:
    *   ?berschreiben Sie die Methode public String toString()
    *  aus java.lang.Object (von dieser Klasse sind ja bekanntlich
    *  alle Java.Klassen abgeleitet.), um eine aussagekr?ftige 
    *  Ausgabe von Objekten Ihrer Klassen zu erhalten. */
    public String toString() {
      return "Name="+getName()+" value="+getValue()+" valid="+isValid();
    }
    }
 %>
<pre>
 <%=new SampleBean()%>
 <%=  new SampleBean("JSP-Kurs",1)%>
 <% 
   SampleBean myBean=new SampleBean()
  myBean.setName("Meine Bean");
  myBean.setValid(true);
  out.println(myBean);
 %>
 </pre>
<%include file="/template/tail.jspf"%>