JSF生命周期以验证结束

时间:2012-12-24 21:23:03

标签: jsf primefaces

我有<p:commandButton action=#{bean.action} .../>。不调用action方法。我看了h:commandButton is not being invoked。 没有检查1-2,没有4-11不适用于我的。 对于No 3,我使用AfterPhase方法构建了一个PhaseListener:

public void afterPhase(PhaseEvent event) {
    System.out.println("after Phase: "+event.getPhaseId());
    FacesContext f= event.getFacesContext();
    List<FacesMessage> ml = f.getMessageList();
    for (FacesMessage m:ml){
        System.out.println(m.getSummary()+": "+m.getDetail());
    }
}

这表明循环以PROCESS_VALIDATIONS(3)阶段结束,但没有消息。我在调试模式下重新启动了我的servlet容器,并为捕获和未捕获的ValidatorExceptions(包括其子类)设置了断点。但非被抛出。

我在哪里可以看下一个?

1 个答案:

答案 0 :(得分:0)

在最小化发布SSCCE的代码期间(请参阅上面的评论)我将<p:commandButton>更改为<h:commandButton>,这导致了

javax.el.PropertyNotFoundException: Target Unreachable, 'someField' returned null

因为表单中有<h:inputText value="#{someBean.someField.someOtherField}">。在这种情况下,PrimeFaces CommandButton不会呈现错误消息。