[Seasar-user:17898] [SAStruts] ActionMessagesExceptionをthrowすると、画面から入力値が消える

田嶋隆寿 [E-MAIL ADDRESS DELETED]
2009年 7月 2日 (木) 12:00:06 JST


皆様、初めまして。
田嶋と申します。
以後、よろしくお願いいたします。

SAStruts1.0.4-sp5を使用していたところ、
標題の現象が発生いたしましたので、
ご報告いたします。

アクションフォームをセッションスコープで管理している状態で、
実行メソッドのremoveActionForm = trueにし、
ActionMessagesExceptionをthrowしたところ、
画面にエラーメッセージが表示されるとともに入力値が消えてしまいました。

アクションフォームをリクエストスコープで管理している状態であれば、
入力値が残っているのは確認しておりますので、
仕様ではなく、予期せぬ動作ではないかと考えております。
調査をお願いいたします。

現象が発生する手順は以下の通りです。
1.Dolteng0.37を利用して、プロジェクトを作成する。(SASturts、S2JDBCを使用)
2.DB接続の設定を行い、Scaffoldアプリケーションを生成する。
3.自動生成されたアクションフォームをセッションで管理するよう設定する。
4.実行メソッドでremoveActionFormをtrueにする。
5.ActionMessagesExceptionをthrowする。

以下は現象が発生するよう、Scaffoldで生成されたupdateメソッドに手を加えたものです。

 @Execute(input = "edit.jsp", redirect = true, removeActionForm = true)
 public String update() {
  if (true) {
   throw new ActionMessagesException("errors.system");
  }
  Customer entity = Beans.createAndCopy(Customer.class,
customerForm).execute();
  customerService.update(entity);
  return "/customer/";
 }

ご多忙のところ、大変恐縮ですが、
よろしくお願いいたします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090702/6521a7b6/attachment.html>


Seasar-user メーリングリストの案内