在搜索SO之后,没有找到任何有用的东西,我决定发布这个问题。
是否可以在Lift中执行“后发后重定向”习惯用法 - 如果是这样的话?
答案 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")
。为此,您需要在菜单中定义“页面名称”。