Ошибка JSF "Ожидается дочерний тип компонента ... Найден ноль." - PullRequest
5 голосов
/ 04 ноября 2011

При использовании <a4j:support>, как описано в примере RichFaces Я всегда получаю следующую ошибку при изменении значения раскрывающегося списка.

Ожидается тип дочернего компонента UISelectItem / UISelectItems для тип компонента javax.faces.SelectOne (myId). Найдено ноль.

Вот код 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>

Поскольку cs.bundeslandList.selectOtherField.selectItems является по крайней мере пустым ArrayList, я уверен, что otherFieldId не может быть null.


Теперь я сократил всю страницу и больше не получаю сообщение об ошибке. valueChangeListener вызывается правильно , но к сожалению, otherFieldId не будет обновляться после вызова. Это опустошено. Но при отладке я вижу, что соответствующее свойство заполнено записями.

1 Ответ

5 голосов
/ 04 ноября 2011

Получатель <f:selectItems value> в какой-то момент определенно возвратил null.Нет другой причины для этого исключения.Скорее всего, ваш логический поток кода бина явно неверен.

Обратите внимание, что создание этого свойства static - очень плохая идея.Он будет распространяться среди всех других запросов во всем веб-приложении.Вы хотите, чтобы он был основан на запросе или на самом высоком уровне сеанса.

...