何时使用valueChangeListener或f:ajax listener?
另一个主要区别是在PROCESS_VALIDATIONS阶段结束时调用valuechangelistener方法。旧的值也是可用的ValueChangeEvent#getoldValue()。另外,如果您需要基于提交的值更新另一个属性,那么当您使用valuechangelistener时,它会失败,因为更新的属性可以在随后的UPDATE_MODEL_VALUES阶段期间被提交的值覆盖。毕竟,使用valuechangelistener来执行业务操作实际上总是一个黑客/解决方法。