Slim3 Getting Started のおさらい
Slim3 Getting Started やってみました
に続いて何かやろうかなと思ったら、大まかな手順を忘れてしまったので(苦笑)、手順をおさらい。
自分で思い出すための雑メモ。Getting Started (Slim3)で手を動かしておくこと。
関連エントリ
ルートパッケージの設定
<context-param> <param-name>slim3.rootPackage</param-name> <param-value>morningmist7</param-value> </context-param>
コントローラーの作成(参照系)
コントローラーの作成(更新系。ビュー無し)
モデルの作成
サービスの作成(更新系)
- build.xml -> gen-service -> サービスクラス名[service]の入力(例:"TwitterService")
- ソースが自動生成される
- src/[pkg].service.[service]
- test/[pkg].service.[service]Test
サービス(更新系)を書く
- サービスメソッドを書く
public Tweet tweet(Map<String, Object> input) { Tweet tweet = new Tweet(); BeanUtil.copy(input, tweet); Transaction tx = Datastore.beginTransaction(); Datastore.put(tweet); Datastore.commit(tx); return tweet; }
コントローラー(更新系)からサービスを呼び出す
public class TweetController extends Controller { private TwitterService service = new TwitterService(); @Override public Navigation run() { service.tweet(new RequestMap(request)); return redirect(basePath); } }
ビュー(参照系)を書く
<c:forEach var="e" items="${tweetList}"> ${f:h(e.content)} <hr /> </c:forEach>
コントローラー(参照系)を書く
public class IndexController extends Controller { private TwitterService service = new TwitterService(); @Override public Navigation run() { List<Tweet> tweetList = service.getTweetList(); requestScope("tweetList", tweetList); return forward("index.jsp"); } }
サービス(参照系)を書く
- サービスメソッドを書く
public class TwitterService { private TweetMeta t = new TweetMeta(); // ... public List<Tweet> getTweetList() { return Datastore.query(t).sort(t.createdDate.desc).asList(); } }