読者です 読者をやめる 読者になる 読者になる

URLRewriteをLiftでやってみる

参考URL
本家のURL見ればわかるんだけど、一応サンプル書いとく

サンプル

/product/show/のようなURLをLiftに渡して、をメソッド側で受取、処理する場合を考える

Boot.scalaでの記載

LiftRules.addRewriteBeforeを使う。

LiftRules.addRewriteBefore {  
   case RewriteRequest(ParsePath("product" :: "show" :: product_id :: Nil, _,_), _, _) =>  
        RewriteResponse(List("product_display"), Map("product_id" -> product_id))  
}

case RewriteRequest(ParsePath("product" :: "show" :: product_id :: Nil, _,_), _, _)
の部分で
/product/show/
とマッチするかチェック。
マッチしたら、
RewriteResponse(List("product_display"), Map("product_id" -> product_id))
を実行。"product_display"がsnippetのメソッド名で、"product_id"が変数名という具合。

Snippetのクラスでの記載
  def product_display : NodeSeq = {
    val product_id = S.param("product_id").openOr("");
    println("product_id=================="+product_id)
  }