为什么在 lift mvc v2.3 中重定向后不显示 S.notice
请求时:
case "page" :: AsInt(id) :: Nil => { S.notice(“世界你好!”) S.redirectTo("/index") }
重定向到:
case "index" :: Nil => { // 将 id 为“time”的元素的内容替换为日期 “#时间*”#> DependencyFactory.inject[日期].map(_.toString) 但是
“世界你好!”没有出现。如果我评论redirectTo,它将显示在页面上。
谁能告诉我为什么会话在重定向后没有持续存在?
when requesting:
case "page" :: AsInt(id) :: Nil => {
S.notice("Hello world!")
S.redirectTo("/index")
}
redirects to:
case "index" :: Nil => {
// replace the contents of the element with id "time" with the date
"#time *" #> DependencyFactory.inject[Date].map(_.toString)
}
however "Hello world!" doesn't show up. It will show up on page if I comment the redirectTo.
Can anyone tell me why the session isn't persisting past the redirect?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想这是因为 S.notice() 将消息放置在请求范围内,并且在重定向(创建新请求)后该消息不可用。
请参阅探索 Lift 书中的以下引用:
但:
因此,我认为您可以使用以下版本的 redirectTo 方法来实现此目的:
def redirectTo [T] (where: String, func: () ⇒ Unit) : T
并 make S.notice 在注册函数内调用(第二个参数)。
此致,
弗拉基米尔
I suppose that's because S.notice() places message in request scope and it's not available after redirect (new request is created).
See following quotes from Exploring Lift book:
But:
So I think you can use following version of redirectTo method for this purpose:
def redirectTo [T] (where: String, func: () ⇒ Unit) : T
and make S.notice call inside registered function (second parameter).
Best Regards,
Vladimir
试试这个...
try this...