JSF如何实现onblur后的复杂校验逻辑

来源:互联网 发布:淘宝买汽车配件靠谱吗 编辑:程序博客网 时间:2024/05/01 00:53

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

原创粉丝点击