2009-12-19 11 views
10

FaxForm komut nesnesine sahibim ve faxStatusList özelliğinde FaxStatus nesnenin bir listesini tutuyor.Spring'in form etiketi ile dinamik olarak bağlanan listeler

<c:forEach items="${esaFaxForm.faxStatusList}" var="item" varStatus="loop"> 
    <tr class="tableAltBackground"> 
    <td> 
     <form:checkbox path="faxStatusList[${loop.index}].selected"/> 
    </td> 
    <td> 
     <form:select path="faxStatusList[${loop.index}].status" items="${esaFaxForm.statusOptions}" onchange="checkThisBox(this);"/> 
    </td> 
    <td> 
     <a href="${statusContUrl}?id=${item.id}&status=${item.status}" onclick="openFaxWindow('${viewFaxUrl}?id=${item.id}', ${loop.index});">${item.name}</a> 
     <form:hidden path="faxStatusList[${loop.index}].name"/> 
    </td> 
    <td> 
     <a href="${statusContUrl}?id=${item.id}&status=${item.status}" onclick="openFaxWindow('${viewFaxUrl}?id=${item.id}', ${loop.index});">${item.id}</a> 
     <form:hidden path="faxStatusList[${loop.index}].id"/> 
    </td> 
    </tr> 
</c:forEach> 

Ancak, ben forEach döngü ve endeks olmadan bağlanmasını yapabileceğini anlamaya çalışıyorum:

public class FaxForm { 
    private List<FaxStatus> faxStatusList; 
    public void setFaxStatusList(List<FaxStatus> faxStatusList) { 
    this.faxStatusList = faxStatusList; 
    } 
    public List<FaxStatus> getFaxStatusList() { 
    return faxStatusList; 
    } 
} 

Başlangıçta aşağıdaki gerçekleştirerek nesneleri bağlamak olacak bir JSP sayfası vardı . Spring web sitesindeki örnekler, liste adına giden yolu ayarlayarak bağlamayı gösterir. Özellikleri bağlamak için bir yolu var mı? Bu denedim ama başarısız:

<form:checkbox path="faxStatusList.faxStatus.selected"/> 
<form:select path="faxStatusList.faxStatus.status" items="${esaFaxForm.statusOptions}"/> 

faxStatusList bir alıcı ve ayarlayıcı yöntemi ve her alıcı/ayarlayıcı özelliklere sahip FaxStatus değişken yok. Ben hata sınıfı "geçersiz özellik 'faxStatusList.faxStatus' fasulye sınıfı ..." olsun "

+0

faxStatusList, dizinlenmiş bir özelliktir. Yani faxStatusList.faxStatus gibi bir şey kullanamazsınız. Bunun yerine faxStatusList [] sayfasını kullanın. –

+0

Aslında mevcut kodunuzu yanıt olarak seviyorum çünkü büyük bir esneklik sunuyor. – Steve

cevap

9

Yay form etiketleri onay kutularına sahip etiketi.

<form:checkboxes items="${faxStatusList}" path="faxStatusList" itemLabel="name" itemValue="id" delimiter="<br/>" onclick="yourOnClickMethodIfYouNeed(this);"/> 

yukarıdaki pasajı br etiketi ile sınırlandırılmış onay kutusu öğelerin listesini görüntüler: otomatik bağlama yapmak aşağıdaki şekilde kullanabilirsiniz. Onay kutularının durumuna yapılan herhangi bir değişiklik, FaxForm'unuza uygun şekilde yansıtılacaktır. faxStatusList nesnesi.

İlgili konular