javing
javing

Reputation: 12413

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?

Upvotes: 13

Views: 25267

Answers (2)

planetjones
planetjones

Reputation: 12633

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.

Upvotes: 27

Dave Maple
Dave Maple

Reputation: 8402

You can register a message bundle and customize those messages. This is a pretty decent example/tutorial:

http://www.mkyong.com/jsf2/customize-validation-error-message-in-jsf-2-0/

Upvotes: 2

Related Questions