Jsf rich:组件编辑后的日历更新支持bean
我在数据表中有一个rich:calendar组件: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: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>