gpt4 book ai didi

scala - Scalatra 如何向路由发送参数?

转载 作者:行者123 更新时间:2023-12-04 05:09:00 27 4
gpt4 key购买 nike

我是作为 Scala 相对较新的人来问这个问题的。我已经看到了如何在 Scala 中创建“控制结构”的示例,但我不太了解它,无法遵循 Scalatra 本身的代码。

有人可以解释一下'params'是如何传递给定义的路由处理程序的吗?我觉得这是一种有用的技术,我想知道它是如何完成的。

谢谢!

编辑:添加来自 Scalatra 网站的示例代码来说明我在说什么:

class HelloWorldApp extends ScalatraFilter {
get("/") {
<h1>Hello, {params("name")}</h1>
}
}

最佳答案

这些是涉及的特征:

trait ScalatraFilter extends Filter with ServletBase
trait ServletBase extends ScalatraBase with SessionSupport with Initializable
trait ScalatraBase extends ScalatraContext with CoreDsl with DynamicScope.....

使用 params 时,您使用的是 ScalatraBase 中定义的少数重载方法之一
def params(key: String)(implicit request: HttpServletRequest): String = params(request)(key)
def params(key: Symbol)(implicit request: HttpServletRequest): String = params(request)(key)
def params(implicit request: HttpServletRequest): Params = new ScalatraParams(multiParams)

检查代码

https://github.com/scalatra/scalatra/blob/develop/core/src/main/scala/org/scalatra/ScalatraBase.scala
https://github.com/scalatra/scalatra/blob/develop/core/src/main/scala/org/scalatra/ScalatraFilter.scala
https://github.com/scalatra/scalatra/blob/develop/core/src/main/scala/org/scalatra/servlet/ServletBase.scala

关于scala - Scalatra 如何向路由发送参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122893/

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