2014-12-02 95 views
0

我知道在討論中有很多SO鏈接,但它們或者與舊的框架版本有關,或者它們不適合我,play 2.3.6,java 1.8如何將會話傳遞給scala模板

我想要做的就是將會話傳遞給scala模板,而不必明確地將它們傳遞給控制器​​,我在play 2.3.x版本中找不到隱式參數的示例(工作),我的視圖呈現爲ok(welcome.render(msg)),並且在我的模板我做@(notice: String)(implicit session: play.api.mvc.Session),但它給了我method render in class welcome cannot be applied to given types;錯誤,我也試圖與

@(notice: String)(implicit request: play.api.mvc.Request[Any]) @(notice: String)(implicit request: RequestHeader)

但似乎沒有工作,我知道我可以從控制器傳遞所需的會話值,但我試圖發送一些在導航欄中需要的用戶數據,這在每個視圖中都是必需的,不想從控制器發送它。

任何幫助,將不勝感激

+0

嘗試給出您的模板文件'ok(views.html.welcome.render(msg))'的完整路徑,並編譯您的項目,這可能會解決您的問題。 – Sivakumar 2014-12-02 11:26:17

+0

我看不出這會有什麼區別 – Subash 2014-12-02 11:38:34

+0

對於編譯前的新模板,當你試圖從控制器渲染它,如果你沒有指定模板的完整路徑,它顯示錯誤'模板不能應用於給定的類型',當你給完整的路徑它的作品。 – Sivakumar 2014-12-02 12:11:33

回答

0

玩進程可能從斯卡拉模板通過會話輔助檢索,就像下面的語句。儘管我使用play 2.2.1,但它也可能適用於您。 順便說一句,我從來沒有需要隱式參數才能達到它。

@session.get("keyvalue") 

我可能誤解了你的問題,但如果你想從視圖中獲取會話值,那是標準方法。

+0

thansk很多,我不認爲它適用於我的情況,我只是因爲提到關鍵字'隱式'而誤入歧途, – Subash 2014-12-04 08:15:26