1

Struts2.2.3 でモデル ベースの Web アプリケーションを開発しています。モデルとは、データベース テーブルが Java クラスとして表されるということです (ご存じのとおり)。モデルには、Integer、Date などの型を持つプロパティがあります。これらの値をページにレンダリングし、ユーザーが元の型以外の値を入力すると、常に例外が発生します。データが入力される前に検証機能に達していません。

そして、ページに次のメッセージが表示されます。

Invalid field value for field "estimates[1].count".

コンソールにも次の例外が表示されます

 WARN OgnlValueStack:60 - Error setting expression 'estimates[1].count' with value '[Ljava.lang.String;@a61ffd'

私は何人かの人々が以前にこの問題を抱えているのを見ました: http://osdir.com/ml/user-struts.apache.org/2009-12/msg00037.html

デフォルトのスタックから ConversionError インターセプターを削除しました。そして私のdevModeはオフです。ただし、これらのエラーは引き続き発生します。

アップデート:

エラー例外は MyAction-validation.xml でキャッチでき、エラー メッセージはカスタマイズできることがわかりました。しかし、OGNL 警告はまだ残っていました。

したがって、質問は次のとおりです。

この警告をログに表示しない方法はありますか?

4

2 に答える 2

1

問題は、フレームワークがフォーム データを不適切な Java 型 (通常は文字列) に変換しようとしていることです。そのため、Bean またはアクションのタイプが異なる場合、変換エラーがスローされます。

これを修正するには、独自のコンバーターを作成し、xwork-conversion.properties ファイルに登録します。

これをチェックしてください: http://struts.apache.org/2.2.3/docs/type-conversion.html

于 2012-02-01T17:33:19.110 に答える
0

これに遭遇した場合、この WARN をコンソールまたはログに表示しないという解決策はありません。

読んでください:

http://www.mail-archive.com/user@struts.apache.org/msg90542.html

于 2012-02-02T08:41:25.783 に答える