2012-05-02 5 views
16

Come personalizzare il messaggio di convalida visualizzato quando la convalida non riesce?Come personalizzare il messaggio di errore di convalida JSF

Ecco il codice che ho:

<h:form> 
    <p><h:inputText 
      id="userNo" 
      title="Type a number from 0 to 10:"> 
     <f:validateLongRange 
      minimum="3" 
      maximum="6"/> 
     </h:inputText> 

     <h:commandButton id="submit" value="Submit" 
      action="response"/> 
    </p> 
    <h:message showSummary="true" showDetail="false" 
     id="errors1" 
     for="userNo"/> 
</h:form> 

Attualmente il messaggio assomiglia a questo:

j_idt10:userNo: Validation Error: Specified attribute is not between the expected values of 3 and 6. 

che non è particolarmente facile da usare.

risposta

37

Il modo più semplice sarebbe quello di impostare l'attributo validatorMessage="my custom message" nel tag <h:inputText>.

Per un modo più avanzato leggere questo articolo Customize validation error message in JSF 2.0

And here a complete Reference to all available message that you can override in JSF 2.0.x

+0

Mi sorprende che non sia possibile impostare il messaggio "al volo" in un attributo o qualcosa del genere. Huh ... – Eleeist

+0

c'è, ha modificato la mia risposta ... – Daniel

+2

Ciò ha sicuramente più senso. Ma cosa succede se ho più di un validatore allegato all'input e voglio personalizzare i messaggi di ognuno di essi? – Eleeist

9

Oltre alla risposta di Daniel si può sempre utilizzare l'attributo label per i componenti di input per rimuovere il client-id (j_idt10:userNo:) dall'errore Messaggio.

E.g. con

<h:inputText id="userNo" title="Type a number from 0 to 10:" 
      label="User number"> 
    <f:validateLongRange 
      minimum="3" 
      maximum="6"/> 
</h:inputText> 

emetterà:

attributo

User number: Validation Error: Specified attribute is not between the expected values of 3 and 6.

L'etichetta può essere un'espressione el anche per modificare questa parte del messaggio di errore dinamico.

3

È possibile utilizzare la proprietà validatorMessage del testo di input. Utilizza la proprietà requiredMessage per il messaggio richiesto, è diversa dal messaggio del validatore.

<h:input text required ="true" validatorMessage="Enter user friendly message"> 
    <f:validateLongRange 
     minimum="3" 
     maximum="6"/> 
</h:inputText> 
+2

qualsiasi descrizione – tod

+0

Descrizione aggiunta – omerhakanbilici