The HIRO Says

If you smell what The HIRO is cooking!!!

【slim3】画面遷移のための”Controller”−(1)概要と生成方法

slim3 では、画面遷移の制御を、”Controller”というコンポーネントで行います。
Struts で言うところの Action に相当するもので、リクエストを受け付けて次の遷移先を返すという役割を持ちます。
ひとまず画面とその遷移を構築したい!という場合には、JSP と Controller を用意すればOKです。


1.Controllerの作成方法

slim3build.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
  1. JSP は、gen-controller タスクを実行する場合のみ生成されます。
  2. $root は、アプリケーションのルートパッケージを指します。
  3. war/index.jsp は、slim3 インストール時に既に作成済です。


簡単にまとめると、次のようなルールになります。

  1. / で終わる場合、IndexController・index.jsp を生成します。
  2. / 以外で終わる場合、XxxController・Xxx.jsp を生成します。


※URL のルールの詳細は、こちらをご覧下さい。


3.Indexとは

URL の最後に "/" を指定すると、IndexController というクラスが生成されます。
ところで、そもそも Index とは何でしょう?
これは、SAStruts でいうところの root への遷移を示すものです。


SAStruts の Action は、遷移先毎にメソッドを用意します。
そのうち、root(例えば OrderAction なら /order/)へ遷移するメソッドの名前は、index() とします。


slim3 では、遷移先毎にクラス(Controller)を用意します。
slim3SAStruts の影響を濃厚に受けているので、root へ遷移するクラス名を IndexController としている模様です。


root に遷移したい場合は、IndexController を呼び出せばOKです。


※他にも、slim3 にはところどころに
 SAStruts の影響が見受けられます。
 それを探してみるのも一興でしょう。


4.hot deploy

GAE のローカルサーバ起動時、生成した Controller/JSP は、即座にアプリケーションに反映されます。
通常の JavaEE Web アプリケーションのように、いちいちサーバを再起動する必要はありません。
(この機能を、hot deploy と言います。)


今後の予定

今後は、以下の事項に触れる予定です。

  1. Controller の中身
  2. Controller の UT の実施方法
  3. JSP の作成方法・ルール