2006年09月17日

WOFormのactionバインディング

今日、昔作ったプロジェクトを触っていて気がついたので記録しておく。
というか、こんな機能あることを知らなかったというくらい記憶から消えていた。

WOFormのactionにはそのフォーム内でのデフォルトのアクションをバインドするものだと思っていた。私が使うのはフォーム内のJavaScriptを使ってサーバーで処理を実行するときなんかにFormのsubmitを使ってここにバインドしたアクションを呼び出していた。

ところが、昔(と言っても半年くらい前だ)では、ここにエラーチェックをするアクションがバインドされていたのだ。そしてそのWOFormで囲まれた中のsubmitボタンを押すと、どれを押しても必ずそのそこにバインドしたアクションが実行される。そしてその処理の後、実際のsubmitボタンにバインドしたアクションが実行されていた。


今回、処理を変更してデフォルトの値を別の所で代入するのでエラーチェックが必要なくなったのだが、こういう仕組みになっているとまったく気がつかなったので、目的の処理が呼び出される前に、エラーチェックルーチンが呼ばれてエラーになってしまい、先に進まないのではまってしまった。なにしろ目的の処理の中で代入しているので、エラーチェック時には値が入っていないのだからエラーになるのは当たり前。でも、コードだけを見るとその処理はどこでもよんでいない。悩みました。

普段ならこのようなどのアクションを実行する前にも行いたい処理は、takeValuesFromRequest()中で書いていたのになぜこの時だけ、WOFormのactionにバインドしたのか?謎です。偶々誰かに教えてもらったのか?


でも今後はこんな後で追いかけにくい方法は使わないだろうなあ。
posted by 永遠製作所 at 00:47| 東京 ☁| Comment(0) | TrackBack(0) | WebObjects | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。