と思ったけど、やっぱSlim3の中をちょっとだけ読んでみた。
sa-strutsの簡単な流れをいうと、
diconとかその辺の設定はちゃんとなっているとして、
…あれ?俺よくsa-strutsがどう動いているかしらないなぁ。
convention.diconにroot.pacakgeを記述
↓
ソースディレクトリにroot.packageと同じパッケージを掘る。
↓
その下にaction(formとかserviceとかもたいてい切るけど)パッケージを切る。
↓
ブラウザからアクセスする。
↓
URLからいい感じに対応するActionがターゲットとして選ばれる。
↓
実行し、JSPのパス?を返す
↓
いい感じにJSPにforwardされる
↓
画面出る。
いい感じというのはすべて命名規則によって成り立っている(?)。
というのを踏まえてSlim3を読んでみたら意外と簡単だった。
とりあえずパッケージ内を見てみたら、
IndexControllerって言うのがあった。
Indexというくらいだから、/のときに呼ばれるのだろう。
じゃぁ誰が…ここであまり知識が無いので迷ったのだが、まぁweb.xmlだろう。
中を見るとFilterがいくつかある。
HotReloadingFilterが、うーむこれはHotDeployは使えないけど、
Actionだけは出来るようにした とかいうやつだろう。
DatastoreはBigtableを使うやつかな?まだそこまで行っていないからいいや。
そうするとFrontController。
ははーん、これだなw
中を見る。
ぁぁ(゜Д゜)わからねぇw
よーし、デバッグしよう。
ブレークポイント…無視、(´;ω;`)
ここがJAVAとかEclipseを中途半端にしか分かっていないせいなんだけど、
Tomcatとかは基本Debugモードで動いているじゃまいか。
本ちゃんモードもあるけど。
なのでGoogleのWEBサーバーもそうなのかと思ったけど、
実行から起動しているからデバッグにならないだけで、
デバッグから起動すればデバッグできるのねー。
FrontControllerのFilterのdoFilterに対してブレーク。
中を根気よく除いていったら、newInstance発見。
Seasar2系はリフレクションばっかだもんで、これで決まりだw
んでControllerのrunを呼び、ユーザーのIndexControllerのrunが呼ばれて、
JSPのパスが書いてあるNavigationが返ってくる。
それをまた根気よく掘り進んでいくと、
ServletContextからforwardしているところがあるので、
これにてJSPとつながりました。
なるほど、こうやって動いているのですなぁ。
次は、JSPからどうやって変数を参照しているのかを見て、
実際にSlim3を使ってみよう。
結局、sa-strutsと同じだった、そりゃそうか。