电梯后发布后重定向

时间:2011-05-12 19:16:21

标签: lift

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

是否可以在Lift中执行“后发后重定向”习惯用法 - 如果是这样的话?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。

有一点需要注意的是,为了避免“表单重新提交”警告,当我们想要显示错误或通知之类的内容时,我们需要重定向到我们自己,{{3由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)
   }
}

答案 1 :(得分:0)

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