Primefaces只显示第一条消息

时间:2015-03-11 23:41:45

标签: twitter-bootstrap jsf jsf-2 primefaces

我有一个奇怪的问题。我正在使用JSF 2.2 + Primefaces + Bootstrap。当我单击“保存”按钮时,将调用验证,如果发生任何错误,则抛出异常并向用户显示一条消息。看我的代码:

我在ManagedBean中调用操作的按钮:

<h:commandLink
            action="#{cc.attrs.managedBeanName.salvarAndRedirecionar()}"
            styleClass="btn btn-default" value="Salvar">
            <i class="fa fa-save fa-fw"></i>
        </h:commandLink>

我的ManagedBean操作:

public String salvarAndRedirecionar(){
    salvar();
    if (!FacesContext.getCurrentInstance().isValidationFailed()){
        return goToLastPage() + "?faces-redirect=true";
    }else{
        return "";
    }
    }

public void salvar() {
    beforeSave();


    if (FacesContext.getCurrentInstance().isValidationFailed()){
        return;
    }

    try {   
        bean = (Bean) getUtil().save(bean);
        addInfoMessage("Registro salvo com sucesso");
        afterSave();
    } catch (BException e) {
        e.printStackTrace();
        addErrorMessageValidationFailed(e.getMessage());
    } catch (Exception e) {
        e.printStackTrace();
        addErrorMessageValidationFailed((new StringBuilder()).append("Erro ao salvar. ")
            .append(e.getMessage()).toString());
    }
    return;
    }

想象一下,我有以下几点:汽车,有轮子和颜色。车轮和颜色是强制性的,并且验证受让人。如果我填写没有轮子和颜色的汽车信息,我应该得到消息:

“汽车需要轮子”。因为第一次验证是关于车轮的。所以我填充轮子并尝试再次保存(现在没有颜色)。下一条信息应该是:“汽车需要颜色”。但是没有显示任何内容,只是在IDE CONSOLE(eclipse)上。

浏览器控制台中没有任何错误。我该如何解决这个问题?

编辑1:

当我尝试从primefaces使用commandButton时,一切正常。看:

<p:commandButton action="#{cc.attrs.managedBeanName.salvarAndRedirecionar()}" value="salvar" />

我因为bootstrap而使用JSF commandButton。

0 个答案:

没有答案