本文共 517 字,大约阅读时间需要 1 分钟。
在JSF Request Processing Lifecyle中,首先第一个Step是Restore View,然后Apply Request Values,之后才开始Process Events。
了解了这个原理之后,你就知道,ValueChangeEvent是在Apply Request Values之后,也就是将输入的值向后台提交之后才被fire的。地球人都知道,只有在form中submit才能将界面的data向后台提交。所以,有如下办法:在<h:inputText />中添加一个属性οnblur="applyValue();",执行的javascript就是执行form.submit();那Form真正要提交改怎么办呢?了解JSF的原理后知道:EventListener是没有返回值的,backing bean可以将界面当前State保存起来,执行完Listener Method之后,redisplay一下,并不进行页面跳转。而<h:commandButton />的action就是一个EventAction了,需要返回一个outcome指令,并跳转到相应的页面。然后,你应该已经知道该怎么做了吧。转载地址:http://gdwpi.baihongyu.com/