当我提交表单时,当我尝试检查java.util.NoSuchElementException
下的某个复选框时,我收到此错误h:selectManycheckBox
。
许多复选框是从bean动态填充的。这是我的代码。
<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>
奇怪的部分是它渲染了一些数据输出,但是当我检查源代码时。没有输入类型复选框元素。
是我缺少的东西。
答案 0 :(得分:0)
我假设您的托管bean是请求范围......
因为您正在发出ajax请求,所以必须启用“aklat.books”以使其值的持续时间长于请求但比会话范围短。
如果您在应用程序库之间进行了解决,可以像这样使用savestate(将它放在h:form标签之后):
<t:saveState value="#{aklat.books}"/>
如果没有战斧,你可以使用a4j:keepAlive:
<a4j:keepAlive beanName = "#{aklat.books}"/>