Scalatra路由与用户输入处理
1. 高级路由匹配
当一个请求匹配到两条路由时,Scalatra会从应用的底部开始查找匹配的路由,然后向上进行匹配。需要注意的是,Scalatra是从下往上进行路由匹配的,而Sinatra以及大多数受Sinatra启发的框架是从上往下进行路由匹配的。这样做是为了允许子类中声明的路由覆盖父类中声明的路由。
例如,当一个请求 /artists/The_Rolling_Stones/info 进来时,顶部和底部的路由都匹配。由于Scalatra从下往上路由, /artists/The_:name/* 会被匹配,这会触发重定向响应。客户端会立即请求 /artists/Rolling_Stones/info ,Scalatra依旧从下往上匹配这个重定向的请求,最终匹配到 /artists/:name/info ,从而生成所需的响应。
1.1 Rails风格的路径表达式
Scalatra深受Sinatra框架的影响,但Sinatra风格的路径表达式并不是唯一的选择。Ruby on Rails使用了一种替代语法,这种语法更适合特定的格式示例。
以下是使用Rails风格路径表达式的示例代码:
class RecordStore extends ScalatraServlet {
implicit override def string2RouteMatcher(path: String) =
RailsPa
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



