2010-12-09 20 views
1

Ich habe ein Formular mit Struts Tags wie unten.<html:select> Problem mit <html: Optionen> Tag

<html:form styleId='catform' action='/cat/submit.html' method='post'> 
    <html:select property='catName' styleId='catName'> 
     <html:options collection='catList' property='category'> 
    </html:select> 
</html:form> 

In meiner Aktion Ich gründe catList wie unten

List <Category> catList = getCategoryList(); 
    request.setAttribute("catList", catList); 

hier Kategorie ist eine Klasse mit catName und catId als Variablen.

Ich erhalte einen Fehler, der sagt, dass kein Getter für die gefundene Immobilienkategorie existiert. Was fehlt mir?

Antwort

2

Sie benötigen

<html:options collection='catList' property='catId' labelProperty='catName'> 

Streben setzen versucht, die category Eigenschaft der Category Instanz

+0

Was ist, wenn Liste von String ist zB: Liste catList = getCategoryList()? Was soll ich verwenden? – Shwetanka

+1

well struts ruft das auf, was Sie im Attribut Eigenschaft für jedes Element der Liste definieren. Wenn keine Eigenschaft angegeben ist, wird das Element direkt verwendet, in Ihrem Fall der tatsächliche String –

1

Sie brauchen, um setzen entweder eine „Sammlung“, die zwischen Java-Tags wie dies geschehen ist:

collection="<%= myCollection %>" 

oder den "Namen" zu verwenden, und "Eigentum" Attribute wie folgt aus:

name="mybean" property="beanPropertyWhichContainsTheCollection" 

Verwenden Sie nicht beide Attribute "Eigenschaft" und "Sammlung".