Scala Lift - URL перезаписать на страницы в папке - PullRequest
1 голос
/ 10 февраля 2012

У меня есть следующее правило перезаписи:

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 / room.html)

То, что я пытаюсь сделать, это добавить еще один параметр после комнаты, чтобы я мог получить

http://xx.xx.xx.xx/room/[page_id]/[room_id]/[user_id]

Но вместо загрузки room.html в корень веб-приложения, онзагружает страницу, используя page_id в подпапке с именем pages.

Таким образом, я мог бы иметь

http://xx.xx.xx.xx/room/join/[room_id]/[user_id]

Что бы загрузить

webapp/pages/room/join.html

Заранее благодарен за любую помощь, высоко ценится:)

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

У вас должна быть возможность просто добавить новый случай к вашему переписыванию:

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)
                )
})
0 голосов
/ 10 февраля 2012

Если вы просто спрашиваете, как переписать /room/join/[room_id]/[user_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 "в вашу карту сайта.

...