使用参数提交表单后,将重定向提升到新页面

时间:2011-05-16 13:35:06

标签: lift

如何将表单提交结果传递给我重定向到的页面?

例如,假设我有以下逻辑:

Search Page -> validate

if errors - show Search Page again with errors   <--- this part works
else - redirect to New Page(passing search params)  <-- no params passed

我的表单处理看起来像这样:

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

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

    S.errors match {
        case Nil =>S.notice("Name: " + name); S.redirectTo("search-results")
        case _ =>S.redirectTo(S.uri)
    }
  }

正如您所看到的 - 我的搜索结果未获得“名称”或“生日”参数。当我执行 S.redirectTo 调用时,如何从表单中传递参数?

如果我能以某种方式澄清问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

您可以将参数存储在SessionVar中,并从search_results片段或您需要的任何位置访问它们。请参阅http://stable.simply.liftweb.net/#toc-Section-4.4

否则你可以随时做:  

S.redirectTo("search-results?param1=value1") //Not very clean though