2011-11-04 22 views
5

RichFaces example'da açıklandığı gibi <a4j:support> kullanırken, aşağı açılır kutunun değerini değiştirirken her zaman aşağıdaki hatayı alıyorum.JSF hatası "Bir alt bileşen türü bekleniyor ... Bulunan null."

Beklenen bileşen türü javax.faces.SelectOne (MyID) için UISelectItem/UISelectItems çocuğuyum bileşen türü. Null bulundu.

İşte JSF kod: cs.bundeslandList.selectOtherField.selectItems yana

<h:selectOneMenu id="selectId" valueChangeListener="#{cs.myListener}" value="#{cs.selectList.selectedItem}"> 
<f:selectItems value="#{cs.bundeslandList.selectItems}" /> 
<a4j:support event="onchange" reRender="otherFieldId" /> 
</h:selectOneMenu> 

<h:selectOneMenu id="otherFieldId"> 
<f:selectItems value="#{cs.bundeslandList.selectOtherField.selectItems}" /> 
</h:selectOneMenu> 

en azından boş bir ArrayList, ben otherFieldIdnull olamayacağını eminim.


Tüm sayfayı şimdi indirdim ve artık hata alıyorum. valueChangeListener doğru olarak adlandırılır ancak maalesef, otherFieldId çağrıdan sonra yenilenmez. Boşaltıyor. Ancak hata ayıklama yaparken, ilgili özelliğin girişlerle dolu olduğunu görebiliriz.

+0

Hala üzerinde çalışıyoruz… –

cevap

5

<f:selectItems value> alıcısı, bir noktada kesinlikle null döndürülmüştür. Bu istisna için başka sebep yok. Muhtemelen ardına baktığınız fasulye kodu mantık akışı düz yanlıştır.

Bu mülkü static yapmanın çok kötü bir fikir olduğunu unutmayın. Tüm web uygulamasında diğer tüm istekler arasında paylaşılacak. İstek temelli veya en yüksek oturum temelli yapmak istiyorsunuz.

+0

Üzgünüz, 'statik' konusunda yanılmışım. –

+0

Düzenlenmiş gönderimime bakın. –

+0

Bu farklı bir sorundur ve teknik olarak yeni bir soruya girmelidir. İlk adım, "yenilenmeyecek" ile tam olarak ne demek istediğinizi detaylandırmak olacaktır. Ajax yeniden işlenmiş miydi? Ya da '' getter boş bir liste mi döndürdü? – BalusC