2012-04-02 6 views
5

Ho un testo di input che è associato a una proprietà Long.Come personalizzare il messaggio di conversione JSF 'deve essere un numero composto da una o più cifre'?

private Long length; 

<h:inputText value="#{bean.length}" /> 

Quando entro i non-cifre in quel testo di input, ottengo il seguente errore di conversione:

myForm:myField: 'someText' must be a number consisting of one or more digits.

mi chiedevo come personalizzare questo messaggio:

length must be a number greater than zero.

risposta

9

O utilizzare l'attributo del componente di ingresso converterMessage:

<h:inputText converterMessage="length must be a number greater than zero" /> 

(e non dimenticate di utilizzare <f:validateLongRange> per impedire agli utenti di essere in grado di immettere valori negativi e fornire una validatorMessage!)

O creare un file di proprietà nel classpath che sovrascrive il messaggio predefinito del JSF incorporato LongConverter:

javax.faces.converter.LongConverter.LONG = length must be a number greater than zero 

ed è stato registrato come messaggio fascio in faces-config.xml:

<application> 
    <message-bundle>com.example.CustomMessages</message-bundle> 
</application> 

L'esempio precedente presuppone che il nome del file è CustomMessages.properties ed è stato messo in com.example pacchetto. Puoi nominarlo e posizionarlo dove vuoi.

È possibile trovare una panoramica di tutti i tasti di messaggio come javax.faces.converter.LongConverter.LONG e i loro valori predefiniti nel capitolo 2.5.2.4 di the JSF specification che è anche copiabosto in this answer.

Problemi correlati