0
有時需要與所有視圖共享上下文變量,例如當前用戶或導航狀態。仔細查看文檔,我無法找到一種方法在所有視圖中共享模板引擎可訪問的全局上下文變量。在所有Play 2.0項目視圖中創建變量
這是由框架提供的,還是我最好明確地將這些變量傳遞給所有的視圖,也許是通過編寫一個在視圖需要這些全局變量的所有控制器中調用的包裝器方法?
有時需要與所有視圖共享上下文變量,例如當前用戶或導航狀態。仔細查看文檔,我無法找到一種方法在所有視圖中共享模板引擎可訪問的全局上下文變量。在所有Play 2.0項目視圖中創建變量
這是由框架提供的,還是我最好明確地將這些變量傳遞給所有的視圖,也許是通過編寫一個在視圖需要這些全局變量的所有控制器中調用的包裝器方法?
您可以使用該Session and Flash scopes
public static Result index() {
// session is good for storing session data such as for an example logged user's info
session("username", "John Doe");
// flash is available only for next request (in this case for view rendering process)
flash("navId", "mainPage");
return ok(index.render("ellou' World"));
}
index.scala.html
@(message: String)
@main(message) {
@if(flash.get("navId")=="mainPage"){<h1>Great! You're on main page again</h1>}
<div>You're logged as @session.get("username")</div>
}
當然
對作爲個體的每一頁(樣navId
)的數據,你也可以將它傳遞給視圖,其中您可以聲明除String
以外的所需類型。
你應該看看這個:http://stackoverflow.com/questions/9629250/how-to-avoid-passing-parameters-everywhere-in-play2/9632085#9632085 –