1

Spring MVC 3を使用しており、モデルオブジェクトの検証アノテーションを使用しようとしています。

ただし、この検証は、例外がスローされない場合にのみ機能することがわかりました。

このpojoを例にとってみましょう。

public class Person{
    private String name;
    @Min(30)
    private int age;
}

ここで、htmlフォームを使用して新しいPersonインスタンスを作成します。年齢のタイプがintの場合、検証は機能します。

ただし、そうでない場合(たとえば、ユーザーが年齢の文字列を入力した場合)、例外がスローされます。

そして、この例外をキャッチしてそのメッセージをエラーフォームフィールドに入力する場所を知りたいですか?


アップデート:

サーブレット-context.xml

<mvc:annotation-driven />
<mvc:view-controller path="/" view-name="home" />
<context:component-scan base-package="com.king.controller" />
<mvc:resources mapping="/res/**" location="/res/" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>
4

1 に答える 1

1

リソースメッセージのプロパティファイルにtypeMismatchキー付きのプロパティを追加してみてください。

typeMismatchエラーの一般的な方法:

typeMismatch=This is a not valid type

より具体的には、具体的なプロパティに:

typeMismatch.person.age=This is a not valid a type

これにより、Springが例外をスローするのを防ぎ、対応するメッセージがエラーに追加されます。

お役に立てれば。

アップデート:

このBeanをservlet-context.xmlに追加する必要があります。

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
        p:basename="/WEB-INF/messages/validation" />

そして、上記の値を使用して/ WEB-INF /messagesフォルダーにファイルvalidation.propertiesを追加します( )。typeMismatch...

于 2012-08-29T10:29:38.043 に答える