ウィリアムのいたずらの、まちあるき、たべあるきーPART2

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

StrutsのActionFormで、resetで初期化するのは「ふさわしくない」そうだけど・・


Strutsでは、ActionとActionFormクラスにわかれ、画面入出力はActionFormで行い、とくにresetで初期化を行うイメージがあるけど、
クラス ActionForm
http://www.jajakarta.org/struts/struts1.2/documentation/ja/target/api/org/apache/struts/action/ActionForm.html

のresetのところを見ると(以下斜体は上記サイトより引用)


「更新」タイプのページに関しては、 フォームの値を初期化する場所として、このメソッドはふさわしくありません (値の初期化はセットアップ用のActionの中で行なうべきです)。 たいていの場合にチェックボックスの値がfalseに設定されているかを気にする必要はありますが、 ほとんどの場合はこのメソッドを実装しないでおいて構いません。


ほお、初期化する場としては、ふさわしくないのね・・




でも、JSPから、Strutsに変換する場合、
画面表示を行うJSPを
   ・処理と初期化を行う部分と
   ・画面入出力を行う部分
にきれいにわけて(HTMLタグ以降は、値の表示くらいしかさせないように分けて)

その画面に対応するActionFormとActionを作成し、
   ・ActionFormのresetに、処理と初期化を行う部分をとりあえず押し込み
     →forwordはとりあえずコメントにしておいて
   ・Actionは、次の画面に遷移するようにforwardを設定して

その後、処理だけしてforwardするjspに対して、
   ・そのJSPを呼び出す画面のActionに、処理だけするJSPの内容を貼り込み、

そのさらに後で、
   ・ActionFormのresetに入っている処理部分を、この画面を呼び出すActionに
    (複数ある場合もある)コピーして分配する

ようにすると、比較的簡単に(機械的に)移植出来そうですけどね。。