2014-07-16 36 views
-2

在URL中的參數是這樣的: email=TTT&first-name=XXX&last-name=YYY發揮框架獲取參數的URL與前圍

所以,我怎麼能得到從URL參數值?

我知道,如果我使用的功能

def widget(email: String) = Action{ request => 

我想告訴所有的參數。

我可以收到電子郵件。但是我不能將該值命名爲last-name,因爲破折號不能用變量的名稱。那麼我怎麼能得到像這樣的姓氏的價值? (假設我無法更改鏈接,因爲我從其他url獲取鏈接)

回答

0

如果您知道所有參數,您可以創建表單映射並使用fold方法獲取所有值。它也適用於GET方法。在這種情況下,它看起來像這樣

案例類控股網址參數與形式的映射:

import play.api.data.Form 
import play.api.data.Forms._ 

case class UrlForm(email: String, firstName: String, lastName: String) 

object UrlForm { 
    val form = Form[UrlForm](
    mapping(
     "email" -> text, 
     "first-name" -> text, 
     "last-name" -> text 
    )(UrlForm.apply)(UrlForm.unapply) 
) 
} 

控制器的這種形式:

object UrlController { 
    def widget() = Action { implicit request => 
     UrlForm.form.bindFromRequest.fold(
     formWithErrors => // validation errors 
     urlForm => urlForm.email; urlForm.lastName //etc. 
    ) 
    } 
} 

請注意,您可以映射網址參數到任何你想要的類型。字符串只是一個例子。