can you help me please... below you find the codes I used to display a message concerning the availability of an email ... all working correctly except the display ...Thank you for the answer...
Dao
public boolean checkAvailable (String designation) {
        Assert.notNull(designation);
        Query req = getEntityManager().createQuery("select count(*) from "+ getPersistentClass().getName()+" a where a.email = :x");
        req.setParameter("x", designation);
        Long count = (Long) req.getSingleResult();
        
        return count < 1;
    }
Bean
public boolean checkAvailable(AjaxBehaviorEvent event) {
        
        InputText inputText = (InputText) event.getSource();
        String value = (String) inputText.getValue();
        boolean available = eleveService.checkAvailable(value);
            
        if (!available) {
            FacesMessage message = constructErrorMessage(null, String.format("Email '%s' est disponible", value));
            getFacesContext().addMessage(event.getComponent().getClientId(), message);
        } else {
            FacesMessage message = constructInfoMessage(null, String.format("Email '%s' est non disponible", value));
            getFacesContext().addMessage(event.getComponent().getClientId(), message);
        }   
        return available;
        
    }
primefaces
<h:panelGroup>
    <h:outputText value="Email:" />
    <h:outputText style="color:red" value="*  " />
</h:panelGroup>
<p:inputText id="email" value="#{eleveMB.eleve.email}"
            style="width: 250px; height:18px" required="true"
            title="Saisir l'email de l'eleve">
            <f:ajax event="keyup" update="emailMsg" global="false"
            listener="#{eleveMB.checkAvailable}" />
</p:inputText>
<h:panelGroup>
            <p:message id="emailMsg" for="email" />
            <p:tooltip for="email" styleClass="tooltip" showEvent="focus"
                        hideEvent="blur" />
</h:panelGroup>