#topicpath ---- //ここにコンテンツを記述します。 Struts1.1の新機能として、Actionクラスで発生した例外を汎用的に処理する機能があります。これはstruts-config.xmlに例外の種類、遷移先のパス、ApplicationResource.propertiesのキー、を宣言しておけば、Actionクラスで例外がThrowされたときに、勝手に画面遷移やメッセージ表示をしてくれるという便利なものです。これを使うことによって -設定ファイルを利用して、ソースコードを減らして(ひいてはコードを簡潔に)、コード間の関連を疎にする -めんどくさい例外処理を手抜きできる((ビジネスロジックの例外は手を抜いちゃダメだよ)) などのメリットがありそうです。 #contents ***struts-config.xmlの記述 [#u491b38f] ここでは超手抜きして、java.lang.Exceptionに対する例外処理を書いてみましょう(もちろん本当はちゃんとサブクラスについて書きましょう。Exceptionだけでひとつの処理としてしまうと、例外機構の意味がないですからね)。 <global-exceptions> <exception type="java.lang.Exception" key="errors.unknown" path="kino.tiles.passwordsearch"/> </global-exceptions> こんだけです。これでActionクラスで例外がThrowされたときはpathで指定した画面に遷移します。 ***エラー画面の記述 [#l76cc61f] エラー画面の遷移先では <html:errors/> を書いておきます。 ***ApplicationResource.propertiesの記述 [#xd2e73e4] ApplicationResource.properties で errors.unknown= 検索で何らかのエラーが発生しました。<br />{0} としておけば、java.lang.ExceptionがThrowされたときに画面に 検索で何らかのエラーが発生しました。<br />「例外メッセージ」 が表示されます(({0}はe.getMessage()かな?))。 ***感想 [#k08ac05a] これも -<html:errors/> のプロパティを指定できない -Actionごとに遷移先を切り替えられない(とりあえず自画面にエラー表示したい、など) という仕様なのでしょうか?やっぱその場合はActionで例外を処理するんでしょうかね。 あくまで、ロジックによる例外ではなく想定外の例外(?)の時の制御をさせると考えた方がよいんですかね。 ---- この記事は #vote(おもしろかった[8],そうでもない[9]) #vote(おもしろかった[9],そうでもない[9]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}