1

フォームを検証するためにHibernateバリデーターを使用しています。14ヶ月目の9日が翌年の2ヶ月目になるという「問題」があります。(シナリオの例にすぎません)。

デフォルトの変換を防ぎ、代わりにカスタムエラーメッセージを表示するにはどうすればよいか疑問に思いました。

カスタムエディタがIllegalArgumentExceptionをスローした場合に、適切なメッセージを表示する方法を知っている人はいますか?

@InitBinder
    public void initBinder(WebDataBinder binder) {
        CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true);
        binder.registerCustomEditor(Date.class, editor);
    }

spring-portlet-mvcにバインディングに関する問題があったため、customEditorを登録しました。

4

1 に答える 1

2

この動作は検証によって制御されDateFormat.setLenient()、検証とは何の関係もありません (setLentient(false)バインディング フェーズで型の不一致エラーが生成されます)。

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
CustomDateEditor editor = new CustomDateEditor(df, true); 
binder.registerCustomEditor(Date.class, editor); 
于 2010-12-09T16:21:43.457 に答える