我正在使用Glassfish 4.0的Mojarra 2.2.0。
我有一个搜索表单,我想在选中一个复选框后执行一个操作,但该操作仅在第二次单击时执行。
<h:selectManyCheckbox
value="#{searchBean.facetSelectionChoosen}"
layout="pageDirection"
styleClass="checkbox"
>
<f:selectItems value="#{searchBean.facetSelectionAvailable}"/>
<f:ajax execute="@form" listener="#{searchBean.search}" render="@form" />
</h:selectManyCheckbox>
在第一个选择一个复选框时,浏览器向服务器发送POST请求并检索匹配的HTML片段, 但操作未执行 。
这是请求正文:
searchForm=searchForm&searchForm%3Aj_idt14=INF.27.X&searchForm%3Aj_idt17=&searchForm%3Aj_idt21=&searchForm%3Aj_idt23=&searchForm%3Aj_idt25=&searchForm%3Aj_idt27=&searchForm%3Aj_idt29=&searchForm%3Aj_idt31=&searchForm%3Aj_idt33=&searchForm%3Aj_idt35=&searchForm%3Aj_idt40=&searchForm%3Aj_idt42=&searchForm%3Aj_idt44=&javax.faces.source=searchForm%3Aj_idt14%3A0&javax.faces.partial.event=click&javax.faces.partial.execute=searchForm%3Aj_idt14%20searchForm&javax.faces.partial.render=searchForm&javax.faces.behavior.event=valueChange&javax.faces.partial.ajax=true
如果我再选择一个复选框,则执行该操作。这是第二个请求的请求主体:
searchForm=searchForm&searchForm%3Aj_idt14=INF.27.X&searchForm%3Aj_idt17=&searchForm%3Aj_idt21=&searchForm%3Aj_idt23=&searchForm%3Aj_idt25=&searchForm%3Aj_idt27=&searchForm%3Aj_idt29=&searchForm%3Aj_idt31=&searchForm%3Aj_idt33=&searchForm%3Aj_idt35=&searchForm%3Aj_idt40=&searchForm%3Aj_idt42=&searchForm%3Aj_idt44=&javax.faces.ViewState=-2850678035461429390%3A7352800471989777110&javax.faces.source=searchForm%3Aj_idt14%3A0&javax.faces.partial.event=click&javax.faces.partial.execute=searchForm%3Aj_idt14%20searchForm&javax.faces.partial.render=searchForm&javax.faces.behavior.event=valueChange&javax.faces.partial.ajax=true
我能识别的唯一区别是第二个请求包含以下参数:
&javax.faces.ViewState=-2850678035461429390%3A7352800471989777110
你们中有谁知道问题是什么或我必须做些什么来解决这个问题?