struts 2.3.1.2 を使用して Web アプリケーションを構築しました。警告/通知として OGNL 例外が発生しない次のページ/アクションがあります。
- JSP ページ - name、address、phone の 3 つのテキスト フィールドを含む
- struts.xml ファイル - devMode = true およびデフォルトのインターセプタ スタックを使用した対応するアクション エントリ
- 2 つのリクエスト パラメータ、つまり名前とアドレスのプロパティのみを持つアクション クラス
上記は正常に実行されており、警告/通知の例外は発生しません。
最近、struts 2.3.14.2 にアップグレードし、ログ ファイルで以下の警告/通知例外が発生し始めました。
Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'start' on 'class com.xyz.DetailsActionSupport:
Error setting expression 'start' with value ['0', ] - Error setting expression 'start' with value ['0', ] - [unknown location] at
com.opensymphony.xwork2.ognl.OgnlValueStack.handleRuntimeException(OgnlValueStack.java:201) at
com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:178) at
com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:152) at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:329) at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:241) at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) and more ...
Google検索で、2つの答えが見つかりました:
- Param インターセプタの struts.xml に除外パラメータを追加する
- struts.xml で定義されている開発モードを無効にする
私はそれを行うことができますが、Struts バージョンで何が変更されたのか理解できないため、通知/警告として例外を出力し始めましたか?
以下のリンクは、警告例外がどのように表示されるかを教えてくれます: http://struts.apache.org/release/2.3.x/docs/parameters-interceptor.html上記のリンクから欠落しているパラメーターに関する警告 のセクションを参照してください。