# STRUTS: javax.servlet.jsp.JspException



## lennied (15. Jun 2009)

Hallo zusammen,

habe Schwierigkeiten mit einer htmlptionsCollection und bekomme folgende FM:

SCHWERWIEGEND: ServletException in '/pages/startseite_planung.jsp': javax.servlet.jsp.JspException: No getter method available for property bezeichnung for bean under name jahre

struts.config
[XML] 
<form-bean name="NeuePlanungsForm" dynamic="true"  type="org.apache.struts.validator.DynaValidatorForm">
...
</form-bean>

<action path="/Planung" type="com.sms.struts.ForwardAction" input="EP.planung">
            <forward name="success" path="EP.planung" /></action>
[/XML]

Collection in der jsp...

```
<jsp:useBean id="jahre" class="com.sms.engineering.Planung" />
     <html:select name="jahre" size="1" property="bezeichnung">
            <html:optionsCollection name="jahre" property="jahreneuevergabe" label="year_string" value="year_string" />
        </html:select>
```

Ziel soll es hier sein, eine dynamische Selectbox mit Jahreszahlen zu erstellen.

Anbei noch ein Auszug aus der betreffen Java-Klasse:


```
public Vector getJahre() {
        String aktuellesJahr = "";
        String a = bezeichnung;
        int aktuJahr = Integer.parseInt(a);
        jahre = new Vector();
        aktuJahr--;
        for(int i=1;i<6;i++){
            aktuellesJahr=String.valueOf(aktuJahr);
            jahre.add( new DynamicYearGeneration(aktuellesJahr,i));
            aktuJahr++;
        }

        Enumeration en = jahre.elements();
        Iterator iter = jahre.iterator();
        while(iter.hasNext()){
            DynamicYearGeneration aktjahr = (DynamicYearGeneration )iter.next();
        }

        return jahre;
    }
public void setJahre(Vector jahre) {
        this.jahre = jahre;
    }
public String getBezeichnung() {
        bezeichnung = sdf.getAktuellesJahr();
        return this.bezeichnung;
    }

  
    public void setBezeichnung(String bezeichnung) {
        this.bezeichnung = bezeichnung;
    }
```

Wenn jemand ne Idee hat woran es liegen kann, wäre ich Ihm sehr dankbar, denn die Get-Methode für "bezeichnung" ist in der Klasse ja vorhanden. In einem anderen Projekt läuft der Quellcode einwandfrei...

mfG
Lennie


----------



## HLX (15. Jun 2009)

Du hast eine Bean unter dem Namen "jahre" in der JSP-Seite zur Verfügung gestellt, und diese Bean enthält zusätzlich noch ein Attribut "jahre". Das könnte zu Verwirrung führen. Nach den Angaben im OptionsCollection-Tag in der JSP-Datei müsste es in der Klasse auch noch die Attribute "jahreneuvergabe" und "year_string" geben. Ist das so?


----------



## lennied (16. Jun 2009)

Wie schon erwähnt, klappt dieses Verfahren in einer anderen Anwendung wunderbar. Mit deinen Aussagen hast du aber dennoch recht. 

Habe jetzt aus Zeitgründen auf ein dynamisches Füllen meiner Selectbox verzichtet. Das Problem wird sich aber in den nächsten 1-2 Wochen erneut stellen.

Hast du denn ne andere Idee, wie ich eine Selectbox dynamisch mit Werten fülle?


----------



## HLX (17. Jun 2009)

Ich würde, wie gesagt, als erstes den Namen im Select- und OptionsCollectionTag anders wählen, um Verwirrungen zu vermeiden. Gerade bei diesem Tag geht wegen falscher Anwendung oft etwas schief, da man versucht es wie das vergleichbare alternative OptionsTag anzuwenden.

Zur Überprüfung der korrekten Anwendung hier nochmal die Beschreibung der beiden Tags:
htmlptionsCollection
htmlptions


----------

