Hello, Scooter Framework!

ここでの動作環境は次のとおり。

  • OS: Mac OS X 10.6.2
  • Java: 1.6.0_17
  • MySQL: 5.1.41
  • Webブラウザ: Safari 4.0.4

ここで作成してみるWebアプリケーションは原稿管理。単一テーブルで、タイトル, 記事本文を格納する。

まずはダウンロードページより成果物一式を取得する。ここでダウンロードしたのは「scooter-binary-1.0.RC2.zip」。ファイル取得後、任意のディレクトリに展開する。

% jar xvf scooter-binary-1.0.RC2.zip

展開が完了するとscooterディレクトリが作成される。このディレクトリ名はContext Nameとなり、データベースの名前やURIで使用される。名前をtypescriptにリネームし、cdで移動。tools/init.jarを使用して初期化する。

% mv scooter typescript
% cd typescript
% java -jar tools/init.jar mysql

java -jar tools/init.jar mysql実行後

初期化後に表示されるメッセージ

Don't forget to download MySql jdbc jar file, name it "mysql.jar" and put it under both references/jdbc-clients and webapps/typescript/WEB-INF/lib directories.

にしたがい、MySQLのJDBC jarファイルを取得。mysql.jarにリネームし、references/jdbc-clientsとwebapps/typescript/WEB-INF/lib/にコピーする。コピー後

% java -jar tools/server.jar

を実行してアプリケーションサーバを起動。起動後、Webブラウザでhttp://localhost:8080/にアクセスする。

http://localhost:8080/にアクセス。Scooter Frameworkの情報が表示される

画面上部の「here」をクリックすると、作成したアプリケーション(http://localhost:8080/typescript/)へ移動する。

http://localhost:8080/typescript/にアクセス。スタートページが表示される

それではscaffoldをもちいて、データの入出力がおこなえるようにしてみる。まずはデータベース側の準備だ。ここではScreencastsのCreating a weblog in 15 Minutesデモ内で使用されていたSQL文を抜き出し、改変したものを使用した。

  • データベース名: typescript_development
  • テーブル名: posts
  • フィールド情報: 別表を参照
フィールド名 オプション
id int(11) NOT NULL, auto_increment
name varchar(255)  
title varchar(255)  
content text  
created_at timestamp  
updated_at timestamp  

改変したSQL文

DROP DATABASE IF EXISTS typescript_development;

CREATE DATABASE typescript_development DEFAULT CHARACTER SET utf8;

USE typescript_development;

DROP TABLE IF EXISTS posts;

CREATE TABLE posts (
    id int(11) NOT NULL auto_increment, 
    name varchar(255),
    title varchar(255),
    content text,
    created_at timestamp,
    updated_at timestamp,
    PRIMARY KEY (id)
)

データベースが準備できたら、tools/generate.jarをもちいてコードを生成しよう。

% java -jar tools/generate.jar scaffold post

この操作で必要なファイルが生成される。作成されるファイルは次のとおり。

  • src/typescript/controllers/PostsController.java
  • src/typescript/models/Post.java
  • test/typescript/models/PostTest.java
  • webapps/typescript/WEB-INF/views/posts/index.jsp
  • webapps/typescript/WEB-INF/views/posts/show.jsp
  • webapps/typescript/WEB-INF/views/posts/add.jsp
  • webapps/typescript/WEB-INF/views/posts/edit.jsp
  • webapps/typescript/WEB-INF/views/posts/paged_list.jsp

scaffold実行後、Webブラウザでhttp://localhost:8080/typescript/posts/にアクセスする。

http://localhost:8080/typescript/posts/にアクセス。scaffoldで生成された一覧ページが表示される

画面下部のAdd postリンクをクリックし、データ登録画面を表示

テストデータを入力

scaffoldで生成されたコードをベースとし、各種コントローラやモデルに必要なコードを書き加えていけば、あっという間にWebアプリが仕上がる。構文については、各種リファレンス(Complete API, Command line tools, Compare Rails and Scooter)を参照されたい。