简体   繁体   中英

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:在此处输入图像描述

And this is the result for characters:

在此处输入图像描述

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

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.

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/

You can also set a custom message for every component. Eg.:

<h:inputText id="price" value="#{placeAddControler.price}" validatorMessage="Price must be greater than 0.">
        <f:validateLongRange minimum="0"/>
</h:inputText>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM