Jsf rich:组件编辑后的日历更新支持bean

Jsf rich:组件编辑后的日历更新支持bean,jsf,richfaces,seam,Jsf,Richfaces,Seam,我在数据表中有一个rich:calendar组件: <rich:column id="last_#{row.index}" > <rich:calendar id="lcal_#{row.index}" value="#{_obj.list[row.index].lastTaught}"> <a4j:support event="onchanged" action="#{_obj.list[row.index].setBoo

我在数据表中有一个rich:calendar组件:

 <rich:column id="last_#{row.index}" >
   <rich:calendar id="lcal_#{row.index}"
     value="#{_obj.list[row.index].lastTaught}">
     <a4j:support event="onchanged"
       action="#{_obj.list[row.index].setBooleanDateHasBeenChanged}"
       ajaxSingle="true" reRender="last_#{row.index}" /> 
   </rich:calendar>
 </rich:column>
当我更改日期时,将调用setBooleanDateHasBeenChanged方法,并在支持bean中更新_obj.list,但当我在重新加载后检查_obj时,hasBeenEdited字段不会反映更改

我尝试使用valueChangeListener(已更改方法签名以匹配):


但是setBooleanDateHasBeenChanged甚至没有运行。 如何获得更新支持bean的操作,并在重新发布的JSF模型中反映该更改?
我正在使用JSF1.2、RF3.3和Seam2.2。

我尝试了一系列不同的配置,但最终成功的是摆脱了ajaxSingle和Reender:

 <rich:column id="last_#{status.index}"     
      <rich:calendar value="#{_obj.list[row.index].lastTaught}" >
      <a4j:support event="onchange"
         actionListener="#{_obj.list[row.index].resetTaughtHasBeenEdited()}"/>
    </rich:calendar>
 </rich:column>

valueChangeListener
方法必须遵循与简单的
setXXX
方法不同的签名,类似于
public void valueChangeMethod(ValueChangeEvent e){…}
。不确定此更改是否满足您的要求。顺便说一下,不要编辑
setXXX
方法,请使用其他方法。
 <rich:column id="last_#{row.index}" >
   <rich:calendar id="lcal_#{row.index}"
     value="#{_obj.list[row.index].lastTaught}"
         valueChangeListener="#{_obj.list[row.index].setBooleanDateHasBeenChanged}">
     <a4j:support event="onchanged"
       ajaxSingle="true" reRender="last_#{row.index}" /> 
   </rich:calendar>
 </rich:column>
 <rich:column id="last_#{status.index}"     
      <rich:calendar value="#{_obj.list[row.index].lastTaught}" >
      <a4j:support event="onchange"
         actionListener="#{_obj.list[row.index].resetTaughtHasBeenEdited()}"/>
    </rich:calendar>
 </rich:column>