2011-01-26 13 views

答えて

40

JSR 303 default message interpolation algorithmでは、ValidationMessagesという名前のリソースバンドルを指定してメッセージをカスタマイズできます。

javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE 
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE 

これは@Size制約のデフォルトのメッセージを変更しますので、あなたが代わりにHibernate固有@Length制約の@Size制約を使用する必要があります:クラスパス含んでValidationMessages.propertiesファイルを作成します。

すべての制約のデフォルトメッセージを変更する代わりに、特定の制約インスタンスのメッセージを変更できます。

@NotNull(message = "{email.notnull}") 
private String email; 

をそしてValidationMessages.propertiesファイルにメッセージを追加します:制約にmessage属性を設定し、私は@NotNullのような注釈の検証を使用してい

email.notnull=E-mail address is required 
+8

私はここに追加する価値のあるサイドバーは、 'javax.validation.constraints.Size.message = Lengthは{min}と{max}文字の間にある必要があります 'のような最小値と最大値を得ることができるということです。 – Patrick

+3

私はこのプロパティファイルでinternacionalizationを行うのですか? ValidationMessages_ .properties? –

+0

@Chin Huang、{min/max}の値が動的に変化する場合はどうですか? given_at_runtimeが注釈属性を参照していないメッセージパラメータ{最小値は{provide_at_runtime}}を指定できます –

0

春私はSpring MVCを意味すると仮定しています。

あなたはバリデータクラスを作成します - - あなたは上のフィールドにしたい任意の検証本文中に入れ

public class UserValidator implements Validator { 

    public boolean supports(Class candidate) { 
     return User.class.isAssignableFrom(candidate); 
    } 

    public void validate(Object obj, Errors errors) { 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "required", "Field is required."); 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "required", "Field is required."); 
    } 
} 

下記参照ここで http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

あなたが行くから

<tr> 
    <td>First Name:</td> 
    <td><form:input path="firstName" /></td> 
    <!-- Show errors for firstName field --> 
    <td><form:errors path="firstName" /></td> 
</tr> 

firstNameのための任意の検証エラーが印刷されます。この方法 -

はJSPで使用するには、次のタグが必要になります。

+0

。では、Spring jarにメッセージがどこに格納されていますか?私はそれらを編集する必要があると思う –

+0

@ apache-fan OPは現代のJSR303スタイルのバリデーションについて述べており、古いスプリング固有のものではないので、私はあなたの答えを投票します。 –