# Methoden einer Bean aufrufen?



## EOB (4. Okt 2006)

hi, wie kann man eigentlich methoden einer bean aufrufen und deren rueckgabewert verwenden? mich interessiert besonders, wie das mit jstl geht.

danke


----------



## HLX (4. Okt 2006)

Sollte man nicht in der JSP-Seite machen. Methoden besser über ein Servlet aufrufen. BL gehört nicht in die Darstellung.

Ansonsten kommt man (wie auch bei Servlets) über das Request-Objekt an die Bean, keine Ahnung ob das mit JSTL geht.


----------



## EOB (5. Okt 2006)

hi, also ich arbeite demnaechst mit escenic und da gibts halt viele viele beans, die im entsrepchenden scope bereit stehen. aber mit servlets wird da nix gemacht. aber ich hab gestern gesehen, dass es keine methoden sind, sondern variablen...also die kann man ja auslesen...denk ich.

viele gruesse


----------



## mutex (7. Okt 2006)

Was ist denn überhaupt eine Bean im WebApp-Umfeld? Also ich hab's so verstanden, daß man mitlerweise kein spezielles Interface mehr dazu implementiert, sondern sich einfach daran hält, daß die Klasse getXYZ- und setXYZ-Methoden implementiert.

In bezug auf die ursprüngliche Frage hieße das, daß man mit der JSTL so ein Objekt dann einfach per EL verwenden kann: Wenn ich z.B. eine Methode 'getElements()' auf einer Instanz 'bean' habe, die mir eine Liste zurück gibt, dann kann ich dies im Beispiel nutzen als:


```
<c:forEach var="element" begin="0" items="${bean.elements}">...</c:forEach>
```

Oder wenn es eine Methode 'getHasElements()' gibt, kann man dies in JSP per JSTL+EL nutzen als:


```
<c:if test="${bean.hasElements}">Yup</c:if>
```

Und wenn eine Methode 'getHelloWorld()' einen String liefert, dann kann man diesen ohne JSTL im JSP mit der (JSP2-)EL nutzen:


```
<h1>${bean.helloWorld}</h1>
```

Fragen wäre hier: Gibt es Regeln, was eine Bean "ausmacht"? Muß es immer Getter/Setter-Paare geben? Darf eine Bean auch Methoden haben, die nicht diesem Schema entsprechen? Kann bzw. "darf" man auch diese Methoden in der JSP (z.B. per jsp:scriptlet) aufrufen?

Nimmt man hier obiges Beispiel: In der JSP sieht das "bean.hasElements" ja echt hübsch aus, aber wenn ich die Methode in einem Servlet benutze, dann wär's mir ja doch irgendwo lieber, wenn sie auch dort einfach 'hasElements' anstatt 'getHasElements' hieße. Wie realisiert man sowas "vernünftig"?


----------



## EOB (9. Okt 2006)

hi, eine bean muss immer setter und getter haben, die so heissen, wie die properties + set oder get. hat man also ein property _string_, gibt es eine getString und setString methode. das hab ich naemlich nicht beachtet und das wars problem!

gruesse


----------

