我有一个与我的jsf视图中的字段关联的ValueChangeListener。当我更改字段的值,然后单击另一个字段时,在处理ValueChangeEvent后,焦点将丢失。
在事件监听器中,我做了类似的事情:
if (PhaseId.ANY_PHASE.equals(vce.getPhaseId())) {
vce.setPhaseId(PhaseId.UPDATE_MODEL_VALUES);
vce.getComponent().queueEvent(vce);
} else {logic}
所以我将事件排在另一个阶段。我注意到,如果我没有对事件进行重新排列,那么焦点就会被重点关注。 另外我注意到如果我将事件排在PhaseId.RESTORE_VIEW阶段,那么在该阶段不会再次调用ValueChangeListener。 如果我重新列出这个事件,我不明白为什么或如何失去焦点。任何帮助表示赞赏!