2011-11-04 18 views
5

Podczas korzystania z <a4j:support>, jak opisano w RichFaces example zawsze otrzymuję następujący błąd podczas zmiany wartości rozwijanej.Błąd JSF "Oczekiwano typu komponentu podrzędnego ... Znaleziono zero".

Oczekiwany typ komponent dzieckiem UISelectItem/UISelectItems dla komponentu typu javax.faces.SelectOne (myid). Znaleziono wartość null.

Oto kod JSF:

<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> 

Od cs.bundeslandList.selectOtherField.selectItems jest co najmniej pusta ArrayList, jestem pewien, że nie może być otherFieldIdnull.


Pozbyłem się całej strony i już nie dostaję błędu. Identyfikator valueChangeListener jest nazywany poprawnie , ale nie będzie odświeżany po wywołaniu. Opróżnia się. Ale podczas debugowania widzę, że odpowiadająca właściwość jest wypełniona wpisami.

+0

Nadal nad tym pracuję ... –

Odpowiedz

5

Poborca ​​z <f:selectItems value> w pewnym momencie na pewno wrócił null. Nie ma innego powodu dla tego wyjątku. Prawdopodobnie twój logiczny kod logiczny bean bean jest nieprawidłowy.

Pamiętaj, że stworzenie tej właściwości static jest bardzo złym pomysłem. Zostanie udostępniony wszystkim innym żądaniom w całej aplikacji internetowej. Chcesz uczynić go opartym na żądaniach lub na najwyższej sesji.

+0

Niestety, myliłem się co do 'statycznego'. –

+0

Zobacz mój zredagowany post proszę. –

+0

To inny problem i powinien technicznie przejść do nowego pytania. Pierwszym krokiem byłoby opracowanie tego, co dokładnie masz na myśli mówiąc "nie będzie odświeżony". Czy to nie był ponownie renderowany ajax? Czy też '' getter właśnie zwraca pustą listę? – BalusC

Powiązane problemy