tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

Spring Rooの動作(5) - controller scaffoldコマンド

Spring Roo 1.1.0.M1 [rev 3a0b8a3]で試した結果です

controller scaffoldコマンド

  • 指定したエンティティクラスからCRUD画面を作成する
  • 同じコントローラクラスに対しては2回以上実行できない

オプション

--class [className]
  • [className]に作成するコントローラークラス名を指定する
--entity [entityName]
  • [entityName]にCRUD画面を作成するエンティティクラス名を指定する
--path [pathName]
  • [pathName]にURLのパスを指定する
  • 指定しない場合はエンティティクラス名からパスが作成される
--disallowedOperations [optionName]
  • CRUDの中で無効にさせたい操作を指定する
  • [optionName]はcreate,update,deleteのうちのどれか(カンマ区切りで複数指定可能)
  • readの抑制はできない。新規登録はできるけど、見るのはダメというのはできないっぽい

使い方

ふつうに
roo> entity --class ~.domain.SimpleScaffoldEntity
roo> controller scaffold --class ~.web.SimpleScaffoldController --entity ~.domain.SimpleScaffoldEntity
Created SRC_MAIN_JAVA\com\example\sandbox\web\SimpleScaffoldController.java
Created SRC_MAIN_JAVA\com\example\sandbox\web\SimpleScaffoldController_Roo_Controller.aj
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\list.jspx
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\show.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\create.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\i18n\application.properties
Managed SRC_MAIN_WEBAPP\WEB-INF\views\menu.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\update.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Managed SRC_MAIN_WEBAPP\WEB-INF\i18n\application.properties
Managed SRC_MAIN_WEBAPP\WEB-INF\views\menu.jspx
パラメータ付き
roo> entity --class ~.domain.ScaffoldEntity
roo> controller scaffold --class ~.web.ScaffoldController --entity ~.domain.ScaffoldEntity --path /scaffold --disallowedOperations delete
Created SRC_MAIN_JAVA\com\example\sandbox\web\SimpleScaffoldController.java
Created SRC_MAIN_JAVA\com\example\sandbox\web\SimpleScaffoldController_Roo_Controller.aj
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\list.jspx
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\show.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\create.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\i18n\application.properties
Managed SRC_MAIN_WEBAPP\WEB-INF\views\menu.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Created SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\update.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\simplescaffoldentitys\views.xml
Managed SRC_MAIN_WEBAPP\WEB-INF\i18n\application.properties
Managed SRC_MAIN_WEBAPP\WEB-INF\views\menu.jspx

その他

コントローラの削除
  • rooコマンドは無いっぽい
  • 作成時に作られたファイルを消していくことになる
    • SRC_MAIN_WEBAPP\WEB-INF\views配下にある該当エンティティクラス名のディレクトリを削除
    • SRC_MAIN_WEBAPP\WEB-INF\views\menu.jspxの該当箇所を削除
    • SRC_MAIN_WEBAPP\WEB-INF\i18n\application.propertiesの該当箇所を削除
アプリの実行
$ mvn tomcat:run
    • Jettyの場合
$ mvn jetty:run
  • roo上でも以下のようにやれば実行可能だが、簡単に停止できなくなるので微妙
roo> perform command --mavenCommand tomcat:run
roo> perform command --mavenCommand jetty:run