Search code examples
javavalidationjsfjakarta-eejsf-2

How to set a custom message for a standard validator in JSF?


I created a simple input field for an int variable. I want to add validation to it but, but i see no need to create my own validator for it, since the only thing i need is to avoid negative values and characters other than numbers. So this is what i did:

<h:inputText id="price" value="#{placeAddControler.price}">
            <f:validateLongRange minimum="0"/>
</h:inputText>          
<h:outputText value="€" />
<br/>
<span style="color: red;"><b><h:message for="price"
showDetail="true" /></b></span>

When i try how it works this is the result for negative values: enter image description here

And this is the result for characters:

enter image description here

Where in my project can i customize the text of those validation messages?


Solution

  • To change these values you basically have to define your own Resources file, override the properties you want custom messages for and register it in web.xml. This link seems to explain it well, so I've included this rather than try and rewrite the content.

    For a simpler solution and as you are JSF 2 you can also use these attributes of the inputText component:

    requiredMessage="I am a custom message"
    converterMessage="I am a custom message"
    validatorMessage="I am a custom message"
    

    This will override any message which the validator itself spits out.

    But I'd prefer the Resource bundle, as that promotes consistency of user visible error messages across your application.