电梯发布后重定向

发布于 2024-11-07 01:35:44 字数 96 浏览 2 评论 0原文

经过搜索后,没有找到任何有用的东西,我决定发布这个问题。

是否可以在 Lift 中执行“Redirect after Post”习惯用法 - 如果可以,如何执行?

After searching through SO, and not finding anything useful, I decided to post this question.

Is it possible to execute the "Redirect after Post" idiom in Lift - and if so how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

又爬满兰若 2024-11-14 01:35:44

是的,这是可能的。

需要注意的一件事是,为了避免“表单重新提交”警告,当我们想要显示错误或通知等内容时,我们需要重定向到我们自己,按照 邮件存档讨论,作者:Naftoli Gugenheim:

If you are using a StatefulSnippet call redirectTo(S.uri) on in to load the 
same page with the same snippet instance.

因此,例如,在处理表单时我们可以做一些事情喜欢 这:

def process() = {
    if (patientName== "Joe") {
      S.error("Joe not allowed!")
    }
    val dateRegex="\\d\\d/\\d\\d/\\d\\d\\d\\d";

    if (!birthdate.matches(dateRegex)) {
      S.error("birthdate", "Invalid date. Please enter date in the form dd/mm/yyyy.")
    }

    S.errors match {
        //Redirect on success
        case Nil =>S.notice("Patient name: " + patientName); S.redirectTo("/")
        //Redirect to ourselves - and show errors
        case _ =>S.redirectTo(S.uri)
   }
}

Yes it is possible.

One thing to notice, is that in order to avoid "form resubmission" warning, we need to redirect to ourselves when we want to show things like errors or notices, as per the mail archive discussion by Naftoli Gugenheim:

If you are using a StatefulSnippet call redirectTo(S.uri) on in to load the 
same page with the same snippet instance.

So, for example when processing a form we can do something like this:

def process() = {
    if (patientName== "Joe") {
      S.error("Joe not allowed!")
    }
    val dateRegex="\\d\\d/\\d\\d/\\d\\d\\d\\d";

    if (!birthdate.matches(dateRegex)) {
      S.error("birthdate", "Invalid date. Please enter date in the form dd/mm/yyyy.")
    }

    S.errors match {
        //Redirect on success
        case Nil =>S.notice("Patient name: " + patientName); S.redirectTo("/")
        //Redirect to ourselves - and show errors
        case _ =>S.redirectTo(S.uri)
   }
}
故事灯 2024-11-14 01:35:44

您只需在处理 post 请求后使用 S.redirectTo("\pagename") 即可。为此,您需要在菜单中定义“页面名称”。

You can simply use S.redirectTo("\pagename") after proceesing post request. For that to work you need to define "pagename" in menu.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文