Scala Lift-Url重新写入文件夹中的页面

Scala Lift-Url重新写入文件夹中的页面,scala,url-rewriting,lift,Scala,Url Rewriting,Lift,我有以下重写规则: LiftRules.statelessRewrite.prepend(NamedPF("AppRewrite") { case RewriteRequest( ParsePath(List("room", room, user), _, _, _), _, _) => RewriteResponse(List("room"), Map("room" -

我有以下重写规则:

LiftRules.statelessRewrite.prepend(NamedPF("AppRewrite") {

        case RewriteRequest(

            ParsePath(List("room", room, user), _, _, _), _, _) =>

                RewriteResponse(List("room"),

                    Map("room" -> room, "user" -> user)

                )

})
这让我可以

http://xx.xx.xx.xx/room/[room_id]/[user_id]
加载的html页面位于webapp根目录中(例如webapp/room.html)

我想做的是在房间后面添加另一个参数,这样我就可以

http://xx.xx.xx.xx/room/[page_id]/[room_id]/[user_id]
但它不是在webapp根目录中加载room.html,而是使用名为pages的子文件夹中的page_id加载页面

所以我可以

http://xx.xx.xx.xx/room/join/[room_id]/[user_id]
哪个会加载

webapp/pages/room/join.html

提前感谢您的帮助,非常感谢:)

如果您只是询问如何将
/room/join/[room\u id]/[user\u id]
重写为
/pages/room/join.html
,那么只需遵循您开始时使用的相同URL重写模式即可

... // (in the same statlessRewrite.prepend block)
case RewriteRequest( 
  ParsePath( List("room", "join", roomId, userId), _, _, _), _, _) =>
    RewriteResponse(List("pages", "room", "join"), 
      Map("roomId" -> roomId, "userId" -> userId)
    )

您可能还需要将“/pages/room/join.html”添加到您的网站地图中。

您只需在重写中添加一个新案例即可:

LiftRules.statelessRewrite.prepend(NamedPF("AppRewrite") {
        case RewriteRequest(
            ParsePath(List("room", room, user), _, _, _), _, _) =>
                RewriteResponse(List("room"),
                    Map("room" -> room, "user" -> user)
                )
        case RewriteRequest(
            ParsePath(List("room", page, room, user), _, _, _), _, _) =>
                RewriteResponse(List("pages", "room", page),
                    Map("room" -> room, "user" -> user)
                )
})