package ごとの global-results が便利

 

Struts2 で Ajax向けやRESTといったサーバ側APIをアクションとして作成する場合等、出力がHTML以外の場合は、別 package にするとよいです。

例外が発生したとき、デフォルトの package で global-results に 例外用のページを用意すると思うのですが、API の場合、例外発生時に HTML でエラー内容を出力されても、呼び出し元がそのHTMLを解析する必要がありよろしくありません。

その場合、別パッケージにサーバ側API用のアクションを配置するとともに、同じ package に global-results を定義し、出力形式に応じた例外用のページを置くことができます。

すると、通常の画面用のアクションで例外が発生した場合はエラー用の画面(HTML)を表示し、API用のアクションで例外が発生した場合は、APIのレスポンスとしてエラー用のデータを出力することができます。