2013-05-03 59 views
0

例如,如果我的URL是「/」,我怎麼能在應用程序控制器中告訴我用於呈現哪個模板(例如「app/views/index.scala.html」)?如何根據URL找出正在使用哪個Template(class)?

更新到我的問題: 我有一個AJAX調用,它通過一個像「本地主機:9000 /鮑勃」;的URL。在控制器中,我想知道哪個模板被控制器方法返回,它生成了/ s「localhost:9000/bob」;.

也許這甚至不可能與Play?

+0

你想達到什麼目的? – 2013-05-03 16:57:14

+0

@MariusSoutier我的博客中描述了這個演示項目:http://www.poornerd.com/2013/05/03/wysiwyg-editing-of-play-framework-templates-with-the-aloha-editor/ - >我想知道哪個scala模板要根據傳遞給AJAX請求中的控制器的URL進行「編輯」。 – poornerd 2013-05-04 19:05:24

+0

所以我想你已經找到了解決方案?無論如何,我用我想要的方法寫了一個答案。 – 2013-05-04 21:15:10

回答

0

將模板渲染到可以調用的普通類。 您只需在Action中說出您想要的模板即可。

斯卡拉

def index = Action { 
    Ok(views.html.index("Your new application is ready.")) 
} 

的Java

public static Result index() { 
    return ok(views.html.index.render("Your new application is ready.")); 
} 

也有看documentation。您將在那裏找到一個教程來構建一個簡單的第一個Todo列表應用程序。 (Scala version,Java version

+0

我明白了,但那不是我的問題。我有一個AJAX調用,它傳遞了一個URL,如「http:// localhost:9000/bob」。在控制器中,我想找出由控制器方法返回的哪個模板被生成/ s「http:// localhost:9000/bob」。也許這對於Play來說甚至是不可能的? – poornerd 2013-05-03 12:06:25

+0

@poornerd你應該更新你的問題,然後與你的詳細問題。 – 2013-05-03 12:10:25

+0

@poornerd絕對不是開箱即用的,因爲渲染模板就像任何其他的普通方法一樣。就你而言,我可能會保留一張地圖來查看哪個控制器方法呈現哪個模板。 – Carsten 2013-05-03 12:42:42

0

如果要保留某種上下文,可以向該路由添加參數,例如, /bob?ref=index,那麼你知道這個調用發生在索引模板中。 cookie將是另一種可行的,但不太可取的選擇。

在這兩種情況下,您都可以使用動作組合輕鬆使用此功能。

相關問題