- PR -

ResourceファイルとActionErrorクラスの連携について

1
投稿者投稿内容
げん
会議室デビュー日: 2004/03/24
投稿数: 15
投稿日時: 2004-04-14 15:18
こんにちは。

現在Struts1.1とeclipseを使って開発をしています。
エラー処理として、ActionErrorクラスのように、引数を渡して
エラー表示したいと考えています。

例)
ErrorResourcesファイルの設定:
error01=ファイル名が不正です。{0}
error02=・・・

UserExceptionクラスの記述:
try {
 ・
 ・
 ・
} catch (Exception e) {
 UserException ue = new UserException("error01","週報ファイル");
throw ue;
}

こんな感じでResourceファイルの配列{0}に引数(ここでは"週報ファイル"という文字列)
を渡したいのですが、ActionErrorのソースを見ても、ResourceファイルとActionError
の引数の引渡し方法がいまいちわかりません。
現在はExceptionクラスを拡張し、引数を複数とってjspに渡していますが、
jsp側で引数が何個設定されたかを判定する手間がかかるので、できれば
resourceファイルの配列に値を指定したいです。

この件について、なにか情報があればぜひ教えてください。
おかだ
常連さん
会議室デビュー日: 2004/04/05
投稿数: 20
お住まい・勤務地: 大阪
投稿日時: 2004-04-14 15:49
ActionErrorsを生成してやり
エラーが起きたところなどで、エラーを追加してください。
最後にエラーほ保存してやればうまくいくと思います。
あとは、リソースファイルの変換をお忘れなく。

// sample code
ActionErrors errors = new ActionErrors();
errors.add("xxx",new ActionError("error01", "週報ファイル"));
saveErrors(request, errors);
げん
会議室デビュー日: 2004/03/24
投稿数: 15
投稿日時: 2004-04-14 21:17
おかださん、返信ありがとうございました。
返事が遅くなり、失礼しました。
やっとそれらしきことができました!
(リソースファイルの変換も対応しました)

jsp内でのActionErrorsの編集が
以下のとおりで、結構大変なことになりましたが、
これは仕方がないのでしょうか?

<%
ActionErrors u = (ActionErrors) o;
 Iterator it = u.get();
 ActionError ac = (ActionError)it.next();
 Object[] obj = ac.getValues();
 String str = (String)obj[0];
 String key = ac.getKey();
%>
・・・
<html:errors bundle="error_r" />
<bean:message key="<%= key %>" bundle="error_r"/><%= str %>
・・・

引数が複数ある場合はループでまわす処理も入るのかな。
でも、大元のソースでは同じような事をしているような・・・
何かいい方法があれば、ぜひ教えてください。
げん
会議室デビュー日: 2004/03/24
投稿数: 15
投稿日時: 2004-04-14 21:54
自己レスです。

そんな面倒なことをしなくても、実現できました。
お騒がせしました。。。

jspを以下のコードにしました。
<html:errors bundle="error_r" />

最後の難関ですが、この文字列をjavaのString変数として
取得したいです。(さらに編集処理を加えるため)
何かよい方法がありましたら、教えてください。

1

スキルアップ/キャリアアップ(JOB@IT)