错误消息不显示

时间:2013-06-21 08:48:15

标签: jsf facelets

我有一个xhtml页面,代码如下

                                                                       

            <table width="100%" cellpadding="2">
                <tr>
                    <td><h:form>
                            <h:commandButton
                                action="#{TypeController.addType}"
                                value="#{msgs.add}" />
                        </h:form></td>
                    <td width="25%"></td>
                </tr>
            </table>

            <h:form id="mainTable">
                <h:message for="main_content" errorClass="errorClass" />
                <p:dataTable id="dt1" width="100%"
                    value="#{dataTypeListBean.dataTypeBackingBeans}"
                    var="item" border="2" cellpadding="2"
                    styleClass="table_style">
                     <p:column>

....................

             <p style="float: right;">
                                    <h:commandLink
                                        action="#{DictionaryTypeController.delete}"
                                        onclick="return confirm('#{msgs.remove_confirm}');">
                                        <f:setPropertyActionListener
                                            target="#{DictionaryTypeController.selectedType}"
                                            value="#{item}" />
                                        <h:graphicImage
                                            title="#{msgs.delete}"
                                            alt="#{msgs.delete}"
                                            url="/primefaces_resource/images/delete.png" />
                                    </h:commandLink>
                                </p>
                            </div>

.....................

我需要抓住一些错误并向页面显示消息,我写了一段代码

public String delete() {
      try {
          actionFilter.delete(ReferenceDataType.class, selectedType.getTypeId());
      } catch (EJBTransactionRolledbackException e) {
          FacesContext.getCurrentInstance().addMessage("createForm:main_content",
                    new FacesMessage(FacesMessage.SEVERITY_ERROR, "error", null));
          return null;
        }
    return LIST;
  }

错误被捕获,但页面不显示消息。请帮忙。

1 个答案:

答案 0 :(得分:0)

这就是我们在项目中所做的事情:

JSF:

<t:messages id="messageId" showDetail="true" showSummary="false" layout="list" styleClass="errorMsg"" />

JAVA:

FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("ERROR MESSAGE"));
return;

问题是什么?

消息标记不正确,您有

t:message

,它是

t:messages

在检查完其余配置后,一旦修复此标记,一切似乎都与您的代码完美配合。