Eclipseで「build.xml」を選択し、[Run](実行)→[Ant Build](Ant ビルド。3番目の項目)を選択します。以下のダイアログが表示されるので、デフォルト値の「gen-controller」のまま、[Run](実行)ボタンを押下します。
ダイアログボックスに「/twitter/」と入力し、[OK]を押下します。
すると、コントローラクラスファイルが2つとJSPファイルが1つできます。
作成されたJSPファイル「war/twitter/index.jsp」を編集します。
<%@page pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@taglib prefix="f" uri="http://www.slim3.org/functions"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>twitter Index</title>
</head>
<body>
<p>Hello twitter Index !!! </p>
</body>
</html>
「」は、太陽の絵文字をUnicodeのテキスト入力で指定しています。
「http://localhost:8888/twitter/」にアクセスし、Webブラウザで確認します。FireMobileSimulatorを有効にしていない場合、絵文字は表示されません。
Firefoxのメニューから[ツール]→[FireMobileSimulator]→[DC P903i]を選択し、ドコモの携帯電話をシミュレートします。
Webブラウザを再読み込みすると、以下のように絵文字が表示されます。
GAE上にデプロイすれば、ケータイからアクセスしても同じように表示されます。
ここで、Slim3の基本機能を押さえておきましょう。
Slim3は、リクエストURLパスをコントローラに自動的にマッピングします。以下の関係で、呼び出されるコントローラが決定します。
リクエストURLパス | コントローラ |
---|---|
/ | <slim3.rootPackage>.controller.IndexController |
<slim3.rootPackage>.controller.TwitterController | |
/twitter/ | <slim3.rootPackage>.controller.twitter.IndexController |
/twitter/tweet | <slim3.rootPackage>.controller.twitter.TweetController |
<slim3.rootPackage>は、web.xmlで指定します。今回の場合、「com.hayato.gpstweet」となります。
コントローラから呼び出されるJSPは、コントローラのソースコードで指定します。
コントローラクラスは、org.slim3.controller.Controllerクラスを継承し、run()を必ず実装します。コントローラを呼び出すと、このrun()を実行します。run()の戻り値は、org.slim3.controller.Navigationクラスとなり、そこでJSPを指定します。
JSPをレンダリングする場合は、以下のようにします。run()の処理が終了後、index.jspが呼び出されます。
return forward("index.jsp");
別のページへリダイレクトする場合(コントローラ指定)は以下のようにします。IndexControllerにリダイレクトされます。
return redirect("index");
別のページへリダイレクトする場合(URL指定)は以下のようにします。「http://www.atmarkit.co.jp/」にリダイレクトされます。
return redirect("//www.atmarkit.co.jp/");
HttpServletRequestやHttpSessionにアクセスする方法として、org.slim3.controller.ControllerクラスにrequestScope()とsessionScope()があります。
キーを指定して、値を取得する場合は、requestScopeを使います。
String tokenKey = requestScope("token_key");
また、以下のようにリクエストから値を取得する際に型変換を行う便利なメソッドがあります。
キーを指定して、値を保存する場合は、sessionScopeを使います。
いかがでしたでしょうか。クラウドやフレームワークを使うことでケータイ向けWebアプリを超簡単に作れることが理解できたかと思います。次回以降、本稿で作成したサンプルに機能を足していきます。完成版のサンプルコードを最終回でダウンロードできるようにしますので、まずは自身で作ってみてください。
ケータイは、いつでもどこでも触れるため、何げなくつぶやくためのデバイスとして最適です。そこで次回は、Java言語のライブラリ「Twitter4j」からTwitterのAPIを操作する方法を解説します。どうぞお楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.