GET /detail/:categoryId/:id controllers.ItemDetail.index(categoryId:Long, id:Long, page: Integer ?= 1)
routesにルーティングの設定を書きますが、その際に変数のデフォルト値を設定することが出来ます。例えば引数のpageが未指定だった場合にはページ番号1として内部の処理が行われます。
例えばテンプレート内で生成されたURLが
例えばテンプレート内で生成されたURLが
https://github.com/YoshiteruIwasaki/NegativePositieAnalyzerForJa/blob/master/app/views/category.scala.html
<a class="btn btn-default" href="detail/@{category.categoryId}/@{bean.getItem.itemId}">
で生成されているような
/detail/1/2
のようになった場合にはPlay Frameworkの内部では以下のように変換がされます。
/detail/1/2?page=1/detail/1/2
のようになった場合にはPlay Frameworkの内部では以下のように変換がされます。
Controller側ではどのように受け取られるかといいますと、
https://github.com/YoshiteruIwasaki/NegativePositieAnalyzerForJa/blob/master/app/controllers/ItemDetail.java
public static Result index(Long categoryId, Long itemId, Integer page) {のような引数にそれぞれの値がセットされるようになります。
2ページ目以降は
https://github.com/YoshiteruIwasaki/NegativePositieAnalyzerForJa/blob/master/app/views/detail.scala.html
テンプレート内で以下の様なリンクを生成することで
<a href="@routes.ItemDetail.index(bean.getItem.categoryId, bean.getItem.itemId, currentPage - 1)">
/detail/1/2?page=2
のURLが生成されるようになります。
/detail/1/2/3のようにページ番号もスラッシュ区切りにするようなURLのパターンを変える方法はよくわかりませんでした。
0 件のコメント:
コメントを投稿