2010-12-14 30 views
8

SpringのSimpleMappingExceptionResolverを使用してSpringアプリケーションで例外処理を作成しました。すべてうまく動作します。今私は何とかjspページ内のキャッチされた例外を印刷する必要があります。メッセージとスタックトレースのようなもの。私のJSPでは、例外オブジェクトが「例外」属性で検出されました。私がする必要があるのは、そのようなものです:エラーページ - JSPでスタックトレースを印刷する方法

${exception.printStackTrace()} 

私はどのようにわかりません。それを行うにはどのようにどのような方法は、任意の提案のための

おかげで、

は、私は考えることができる最も簡単な解決策は、スタックトレース要素をループにあるマテオ

+1

メソッド名のAPIが見つかりませんか? http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Throwable.html#printStackTrace()。質問には、どんな種類のエラーが表示されるのかを常に質問する必要があります。それがあっても、その行は何も出力しません。 –

+0

@Juan @mateoは、ページの内容にprintStackTrace()メソッドを見つけることができないと考えています。インラインコード(eew)を使わずに正確に複製するのは難しいStringWriterの周囲にPrintWriterを設定します。 –

答えて

17

:-)?あるのを利用して、 Throwable.getStackTrace()方法:

もちろん、いくつかの書式設定を追加する必要があります。

+1

+1。しかし、実際にJSPでスタックトレースを出力するべきではありません。ユーザーはスタックトレースを好む;) – Bozho

+0

@Bozho:Aye。これは診断目的であると仮定していますが、そのためにはTomcatのデフォルトのエラーページを使用しています。こんにちは。 – skaffman

+1

はい私はそれを診断目的のために正確に使用しています。私はTomcatのログにアクセスすることはできず、私はこのページをまだカスタマイズしました。だから、これはTomcatのデフォルトのエラーページを再び使うよりも簡単だと思った:-)しかし、とにかく、ありがとう。 – mateo

2

過去にページ内でこれを行う(dev/local環境のみ)必要があり、テキストエリアまたは書式設定されたブロックに表示する必要がありました。 skaffmanからの出力は、各strackトレース要素を出力しますが、メッセージクラスと例外クラスは出力しません。

printStackTrace()のようにあらかじめフォーマットしたい場合は、Spring ELとcommons-lang3を使用することを検討してください。

<spring:eval expression="T(org.apache.commons.lang3.exception.ExceptionUtils).getStackTrace(exception)"/> 
関連する問題