Nowy
Nowy

Reputation: 63

How to get custom message from i18n to model

I would like to set message for Constraint like this

import play.i18n.Messages;

public class User extends Model {

    @Constraints.Required(message = @Messages.get("validation.required"))
    private String login;

but it doesn't work.

Upvotes: 1

Views: 395

Answers (1)

Wayan Wiprayoga
Wayan Wiprayoga

Reputation: 4562

If you want to specify a customized validation message, you must create a file named messages on conf directory that contain your customized message first. Please check the documentation here

Then, suppose you have a model like following:

public class MyModel extends Model {

    @Constraints.MaxLength(value = 4, message = "validation.limit")
    @Constraints.Required
    @Column(name = "column_name")
    public String columnName;
}

The messages files contain like following:

validation.limit=Please limit the input
validation.required=This field is required to fill

Notice that I mark the @Constraint.MaxLength with message value "validation.limit" and on messages file I specify the value of that with Please limit the input message.

You can find :

  • If you input the columnName value with string whose length greater than 4, you will get validation message Please limit the input. (corresponding to key validation.limit on messages file)

  • If you submit empty value on columnName, you will get validation message This field is required to fill. Note that validation.required is the default message key for @Required annotation.

Hope it is useful for you.. ;)

Upvotes: 2

Related Questions