Почему мой s: selectItems не выбрасывает такое исключение элемента? - PullRequest
0 голосов
/ 17 октября 2011

Я получаю эту ошибку java.util.NoSuchElementException, когда я пытался установить один из своих флажков под h:selectManycheckBox, когда я отправляю форму.

Флажок many динамически заполняется из компонента. Вот мой код

<h:form id="eF">
       <h:inputText id="i" value="#{aklat.suggest}">
            <a4j:support event="onkeyup" action="#{aklat.complete}" reRender="m"></a4j:support>
       </h:inputText>

       <s:div>
           <h:selectManyCheckbox value="#{aklat.selectedBooks}" layout="pageDirection" id="m">
                <s:selectItems value="#{aklat.books}" var="_book" itemLabel="#{_book}" itemValue="#{_book}" label="#{_book.bookName}"/>
           </h:selectManyCheckbox>
         <a4j:commandButton value="Add Users" action="#{aklat.fire}"></a4j:commandButton>  
       </s:div>             
</h:form>

Странная часть в том, что она выводит некоторые данные, но когда я проверил исходный код. Нет элемента ввода типа ввода.

Это то, чего мне не хватает.

1 Ответ

0 голосов
/ 17 октября 2011

Я предполагаю, что ваш управляемый компонент является областью запроса ...

, поскольку вы делаете запрос ajax, вы должны разрешить "aklat.books" сохранять его значение дольше, чем запрос, но короче, чем область сеанса.

Если у вас есть томагавк между библиотеками приложений, вы можете использовать команду savestate следующим образом (поставьте ее после тега h: form):

<t:saveState value="#{aklat.books}"/>

если нет томагавка, вы можете использовать a4j: keepAlive:

<a4j:keepAlive beanName = "#{aklat.books}"/>
...