【slim3】画面遷移のための”Controller”−(1)概要と生成方法
slim3 では、画面遷移の制御を、”Controller”というコンポーネントで行います。
Struts で言うところの Action に相当するもので、リクエストを受け付けて次の遷移先を返すという役割を持ちます。
ひとまず画面とその遷移を構築したい!という場合には、JSP と Controller を用意すればOKです。
1.Controllerの作成方法
slim3 の build.xml にある、以下のタスクを起動します。
タスク名 | 内容 |
---|---|
gen-controller | Controller・ControllerTest・JSP を生成します |
gen-controller-without-view | Controller・ControllerTest を生成します |
※こちらも参照。
gen-controller の場合、Controller とその遷移先の JSP を生成してくれます。
なので、基本的には gen-controller を使っていくことになります。
2.URL の指定方法
Controller 生成時、URL の入力を求められます。
この入力する URL により、Controller 及び JSP の名前と作成場所が以下のように決まります。
URL | Controller |
---|---|
/ | $root/controller/IndexController |
/aaa | $root/controller/AaaController |
/aaa/ | $root/controller/aaa/IndexController |
/aaa/bbb | $root/controller/aaa/BbbController |
/aaa/bbb/ | $root/controller/aaa/bbb/IndexController |
/aaa/bbb/ccc | $root/controller/aaa/bbb/CccController |
※1行にまとまらなかったので分割しています。
URL | JSP |
---|---|
/ | war/index.jsp |
/aaa | war/aaa.jsp |
/aaa/ | war/aaa/index.jsp |
/aaa/bbb | war/aaa/bbb.jsp |
/aaa/bbb/ | war/aaa/bbb/index.jsp |
/aaa/bbb/ccc | war/aaa/bbb/ccc.jsp |
- JSP は、gen-controller タスクを実行する場合のみ生成されます。
- $root は、アプリケーションのルートパッケージを指します。
- war/index.jsp は、slim3 インストール時に既に作成済です。
簡単にまとめると、次のようなルールになります。
※URL のルールの詳細は、こちらをご覧下さい。
3.Indexとは
URL の最後に "/" を指定すると、IndexController というクラスが生成されます。
ところで、そもそも Index とは何でしょう?
これは、SAStruts でいうところの root への遷移を示すものです。
SAStruts の Action は、遷移先毎にメソッドを用意します。
そのうち、root(例えば OrderAction なら /order/)へ遷移するメソッドの名前は、index() とします。
slim3 では、遷移先毎にクラス(Controller)を用意します。
slim3 は SAStruts の影響を濃厚に受けているので、root へ遷移するクラス名を IndexController としている模様です。
root に遷移したい場合は、IndexController を呼び出せばOKです。
※他にも、slim3 にはところどころに
SAStruts の影響が見受けられます。
それを探してみるのも一興でしょう。