1

現在、Struts 2.8 バージョンでプログラムをコーディングしています。次のようにstruts.xmlファイルでdevModeを設定すると

<constant name="struts.devMode" value="true" />

プログラムは例外をスローします。

Throwable occurred: java.lang.NoSuchFieldException: cacheList
at java.lang.Class.getDeclaredFieldImpl(Native Method)
at java.lang.Class.getDeclaredField(Class.java:517)
at com.opensymphony.xwork2.util.LocalizedTextUtil.clearMap(LocalizedTextUtil.java:835)

、value="false" を設定すると例外が発生しないことがわかっています。しかし、私はこのバグを解決したい。誰が私を助けることができます ?前もって感謝します

4

1 に答える 1

1

ドキュメントによるdevModeと、有効にすると、Struts 2 はリクエストごとにリソース バンドル、構成ファイル、struts.xml をリロードします。おそらく、この設定はあまり知られていないため、多くの混乱の原因となっています。これにより、デバッグのレベルが上がるか、通常は無視できる問題がエラーになります。例: アクション 'someUnknownField'( cacheList で設定できないフィールドを送信する場合)、通常は無視されます。ただし、開発モードでは、無効なフィールドが送信されたことを示す例外がスローされます。これは、大きなフォームのデバッグやテストに非常に役立ちますが、アクションに設定されていないが、ビューレイヤーで直接使用しているリクエストのパラメーターに依存している場合、混乱を招く可能性があります (警告: 悪い習慣、これにより、devMode が有効になっているときにエラーがスローされる理由が明確になることを願っています。

于 2013-10-26T14:07:32.370 に答える