主要面孔 - 消息工具提示不会显示

时间:2016-04-29 21:31:44

标签: jsf primefaces

我想将错误消息显示为此示例中的工具提示:http://www.primefaces.org/showcase/ui/message/messages.xhtml

这是我的JSF代码段:

<h:form id="loginForm">
    <p:messages id="messages" showDetail="true" closable="true" for="login"/>
    <h:panelGrid columns="3" cellpadding="3" width="100%">
        <p:outputLabel for="username" value="Login: "/>
        <p:inputText style="width: 100%;" value="#{loginBean.username}" required="true" id="username"/>
        <p:message for="username" display="tooltip"/>

        <p:outputLabel for="password" value="Password:"/>
        <p:password style="width: 100%;" value="#{loginBean.password}" required="true" id="password"/>
        <p:message for="password" display="tooltip"/>
    </h:panelGrid>
    <p:commandButton value="OK" action="#{loginBean.login()}" update="loginForm" style="float: right; margin-top: 5px;"/>
</h:form>

以下是Login行的HTML输出代码段:

<tr>
<td><label id="loginForm:j_idt9" class="ui-outputlabel ui-widget ui-state-error" for="loginForm:username">Login: <span class="ui-outputlabel-rfi">*</span></label></td>
<td><input id="loginForm:username" name="loginForm:username" type="text" value="" style="width: 100%;" aria-required="true" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all ui-state-error" role="textbox" aria-disabled="false" aria-readonly="false"></td>
<td><div id="loginForm:j_idt10" aria-live="polite" class="ui-message ui-helper-hidden ui-message-error ui-widget ui-corner-all"><span class="ui-message-error-icon"></span><span class="ui-message-error-detail">Login: Validation Error: Value is required.</span></div></td>
</tr>

显然有工具提示的HTML代码。输入具有红色轮廓,但是当我将鼠标悬停在输入框上时,工具提示消息才会显示。我的表单放在对话框窗口中。

Primefaces 6.0.RC2

1 个答案:

答案 0 :(得分:6)

您将此代码段放在<h:body>...</h:body>对标记内以及<h:form> ... </h:form>对标记之外:

<p:tooltip />


这是源代码工作(暂时的,为了简单起见,我不使用bean及其属性,方法):

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">

    <h:head>        
    </h:head>

    <h:body>

        <p:tooltip />

        <h:form id="loginForm">
            <p:messages id="messages" showDetail="true" closable="true" for="login"/>
            <h:panelGrid columns="3" cellpadding="3" width="100%">
                <p:outputLabel for="username" value="Login: "/>
                <p:inputText style="width: 100%;" required="true" id="username"/>
                <p:message for="username" display="tooltip"/>

                <p:outputLabel for="password" value="Password:"/>
                <p:password style="width: 100%;" required="true" id="password"/>
                <p:message for="password" display="tooltip"/>
            </h:panelGrid>
            <p:commandButton value="OK" update="loginForm" style="float: right; margin-top: 5px;"/>
        </h:form>
    </h:body>

</html>

这是我的截图:

enter image description here