Strutsのlogic:iterateをあらためて実験。
(バージョンは1.3.10だよ。Struts2なんてまだ仕事で使ったことナイヨ)
もちろんlogic:iterate自体は前から知ってるけど、あまり深く突っ込んで試したことが無かった。
つまり、bean:write以外にhtml:textやリンク・サブミットボタンはどう扱えばいいのかといった辺り。
一行分のデータを保持するBeanを用意するときれいに収まるように出来ているのに感心したが、そうでない方法だとすんなり出来ないようだ。
しかしそもそもStrutsのコーディングを本当に1からやったことが無かった事に気づいた(汗)ので、struts-config.xmlの書き方とActionクラスの書き方もメモだ(苦笑)
それでふと思い出したけど、サーブレットはMTセーフ(スレッドセーフ)にしなければいけないのは前から知ってて、それに伴ってJSPもMTセーフにする必要があることは覚えていたが、StrutsのActionクラスもそうなんだよなー。(でもStruts2ではMTセーフらしい?)
個人的にはそもそもクラス内でも構造化プログラミングをすべきだと思っていて、だからフィールドは極力使わないし(クラス内におけるグローバル変数だから)、ついでにメソッドもけっこう細かく分割する方針で来た。なので、Actionクラスでも特にMTアンセーフなコーディングはしてないから問題ないはずだけど。
JSPも、スクリプトレット類は基本的に使用禁止にしてるしな。
ついでにはまったのが、struts-config.xmlでaction要素にscope="request"を指定しなかった場合のデフォルトがsessionであること! 前に入れた値がFormに残ってるからおかしいと思ったんだよ(汗)
struts-config.xmlなんて既存のコピペしかしないから、1から作ると意外なところが漏れる…。
つーかなんでデフォルトがsessionスコープなんだろう…。Formはリクエストの内容が入るものなんだから、「リクエスト毎に作られる」と考えるのが自然じゃないか?
※コメント投稿者のブログIDはブログ作成者のみに通知されます