gpt4 book ai didi

scala - 哪些是模板上默认可用的隐式对象?

转载 作者:行者123 更新时间:2023-12-04 01:00:59 26 4
gpt4 key购买 nike

我正在尝试为 创建一个插件 Play Framework 2.0 (截至今天,2011 年 12 月 10 日,Github 中的最新代码)。插件必须在 View 中呈现一些数据。为了避免强制用户修改所有模板,我创建了一个标签来检索和呈现相关数据。

为了避免并发问题,数​​据应该与用户的标识符一起存储。该标识符只需要在请求期间有效( session ID、请求本身等),在请求结束后信息将被丢弃。

问题是 Request、RequestHeader 和 Session 都不能用作 Scala 模板中的隐式值。所以,哪些是模板中可用的隐式值 ?

如果没有我可以使用的,您对如何获取我可以从模板和 Controller 访问的值有任何建议(不需要用户修改 Controller 或模板)并且可以在每个-请求依据?

最佳答案

是的,这对我来说也是一个问题......

实际上,他们可以拥有一个 implicit但你仍然必须添加 将其添加到参数列表和 声明 需要的对象为 implicit在行动中。

这是我的做法:

模板

// **FIRST** add the needed implicit parameter to the template (the whole template will be created as a function will the related parameters, incl. curryed parameters list are handled) 
@(stuff:models.MyStuff)(implicit request: play.api.mvc.Request[Any])

@import helper._

@main("Home"){

}

Controller
object Main extends Controller {
def index = Action {
// **SECONDLY** declare the request as implicit.
implicit request =>
Ok(views.html.index(MyStuff()))
}
}

更多?

自一单 implicit参数有效,您可以将所需的对象包装在专用结构中并将其声明为 implicit .

关于scala - 哪些是模板上默认可用的隐式对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com