加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 默认情况下,模板中隐藏的对象是哪些?

发布时间:2020-12-16 09:11:19 所属栏目:安全 来源:网络整理
导读:我正在为Play Framework 2.0创建一个插件(截至2011年12月10日为止,Github的最新代码).插件必须在视图中呈现一些数据.为避免强制用户修改所有模板,我创建了一个标签,用于检索和呈现相关数据. 为了避免数据沿着用户的标识符存储的并发问题.此标识符仅在请求(会
我正在为Play Framework 2.0创建一个插件(截至2011年12月10日为止,Github的最新代码).插件必须在视图中呈现一些数据.为避免强制用户修改所有模板,我创建了一个标签,用于检索和呈现相关数据.

为了避免数据沿着用户的标识符存储的并发问题.此标识符仅在请求(会话ID,请求本身等)中才需要有效,在请求结束后,信息将被丢弃.

问题是,Scala模板中的Request,RequestHeader和Session都不可用作隐含值.那么模板中可以使用哪些隐式值呢?

如果没有可以使用的,您是否有任何建议,如何获取可以从模板和控制器访问的值(不需要用户修改控制器或模板),并且可以在per-要求依据

解决方法

是的,我也是一个问题

实际上,它们可能有一个隐含的,但仍然需要将它添加到参数列表中,并将所需对象声明为隐含在Action中.

这是我做的:

模板

// **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"){

}

调节器

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

更多?

由于一个单一的隐式参数是有效的,您可以将所需对象封装在专用的结构中,并将其声明为隐式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读