2013-02-18 51 views
1

當我正在實施TinyUrl時,我想根據輸入散列將用戶重定向到網頁。Scala播放外部重定向

def getTask(hash: Int) = Action { 
    val url: Option[String] = Task.getTask(hash) 
    // redirect to show(url) 
    } 

但是,我不知道如何將用戶重定向到外部URL。

我看到這個related post,但我遇到了這個編譯時錯誤,當我用redirect

not found: value redirect

回答

3

redirect不存在。
Redirect,它是play.api.mvc包的成員。

這裏是你的行動應該是什麼樣子的例子:

import play.api.mvc._ 

def getTask(hash: Int) = Action { 
    val url: Option[String] = Task.getTask(hash) 

    url match { 
    case Some(url) => Redirect(url) 
    case None => NotFound("This URL leads nowhere. :(") 
    } 
} 
+0

當我嘗試,重定向去'HTTP://本地主機:9000 /任務/ www.google.com'及以下「請求錯誤」錯誤顯示:'對於請求'GET /tasks/www.google.com'[無法將參數哈希解析爲Int:對於輸入字符串:「www.google.com」]' – 2013-02-18 13:42:52

+1

確保'url'具有一個URL前綴(* http:// *,* https:// *等)。 – 2013-02-18 15:34:32