验证和面部消息不会显示

时间:2012-01-11 15:15:28

标签: ajax validation jsf primefaces

我在p:outputPanel

中有以下表格
<h:form id="someForm">
    <p:panel id="panel" header="HEADER">
        <h:panelGrid columns="5">

            <h:outputLabel value="Name:" for="name" />

            <p:inputText id="name" value="#{userBean.name}" required="true"
                requiredMessage="ASD" label="name" maxlength="15">
                <f:validateLength minimum="10"></f:validateLength>
                <p:ajax event="blur" update="inputValidationMessage" />
            </p:inputText>

            <p:message id="inputValidationMessage" showDetail="true" for="name"
                display="icon" />
            <p:watermark for="name" value="e.g Jill" />

        </h:panelGrid>

        <p:commandButton value="Save" update="panel"
            actionListener="#{userBean.doSomething}">
        </p:commandButton>
    </p:panel>
</h:form>

我希望当inputText元素失去焦点并且其内容的长度小于10个字符时,消息ASD会显示在它旁边。但是,在验证失败的情况下会发生什么,只显示红叉图标。消息ASD丢失。将showDetail更改为showSummary也无效。

其次,commandButton调用userBean.doSomething

的UserBean#doSomething的:

public void doSomething(ActionEvent actionEvent) {
        RequestContext context = RequestContext.getCurrentInstance();
        FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_WARN,
                                          "Summary",
                                          "Detail"));
        FacesContext.getCurrentInstance().addMessage(null, facesMessage);
        context.addCallbackParam("booleanVar", true);
}

未显示FacesMessage。

我在Weblogic 12.1上使用JSF2.0和Primefaces 3.0。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

您已将<p:message>声明如下:

<p:message ... display="icon" />

以下是来自PrimeFaces User Guide<p:message>文档的引用:

  

显示模式

     

消息组件有三种不同的显示模式;

     
      
  • text:仅显示消息文本。
  •   
  • 图标:仅显示消息严重性,消息文本显示为工具提示。
  •   
  • both(默认):显示图标和文本。
  •   

因此消息严重性显示为图标,消息文本仅显示为图标的工具提示。您需要删除 display="icon",以便它在视图中显示。

<p:message ... />