Или точнее...
У меня уже есть маршрут страницы с ошибкой, определенный следующим образом:
GET /error controllers.pages.ErrorController.page(msg: String, returnTo: String)
И такой метод контроллера:
object ErrorController extends Controller {
def page(msg: String, returnTo: String) = ReceiverRestricted { implicit req =>
val action = List(Button(F8, "Continue", Call("GET", returnTo)))
Results.Ok(views.html.base(Html("Oops"), List(Html(msg)), None, action))
}
}
Если я программно вызываю, скажем, ErrorController.page("You did something daft!", "/home")
, я попадаю на страницу, которая выглядит так, как я хочу, т.е.:
Oops You did something daft! F8 Continue
Однако URL-адрес уродлив:
http://localhost:9000/error?msg=You%20did%20something%20daft!&returnTo=/home
Я хочу изменить это, чтобы параметр запроса msg=
не отображался в URL-адресе. Как я могу это сделать? Я попытался удалить параметр запроса и перенаправить на страницу ошибки с сообщением, переданным через флэш-куки, - это сработало, но при перезагрузке страницы браузера сообщение теряется. Я не могу использовать файл cookie сеанса, потому что я уже храню другие данные в сеансе почти до предела.