在具有重定向结果的操作方法中设置时,不显示FacesMessage

时间:2013-10-28 08:55:33

标签: jsf primefaces

为什么第一个区块的代码有效,而另一个区块的代码不起作用?这完全是关于显示JSF消息

@PostConstruct
public void init() {
    try {
        throw new RuntimeException();
    } catch (RuntimeException e) {
        i18nExceptionHandler.handleException(e);
    }
}

上面的代码效果很好 - 它会显示消息。

public String login() {
    try {
       //login actions
    } catch (AuthenticationException e) {
      //this doesn't work
        i18nExceptionHandler.handleException(e);
    }
    return "/pages/loggedin?faces-redirect=true";
}

此代码无效 - 它没有显示任何消息,我发出以下错误:

WARNING: There are some unhandled FacesMessages, this means not every FacesMessage had a chance to be rendered.

为什么会这样?我应该在登录方法上使用验证器或其他东西(还有其他的)?

2 个答案:

答案 0 :(得分:1)

您需要在jsf页面中包含h:messages标记。例如,

<h:messages id="messagesID" globalOnly="true" layout="table" />

如果您的JSF页面中没有此项,则会出现警告消息。

答案 1 :(得分:1)

未显示第二个代码块的消息,因为方法没有空符号。