S.redirectTo始终导致空白屏幕

时间:2011-01-11 08:50:16

标签: scala lift

我现在玩电梯(2.1),LiftRules的所有功能都按预期工作。 但我根本无法使用S.redirectTo。无论如何,我总是以黑屏结束。 完全没有错误消息!

举个例子,我有以下表格:

...
  <lift:logIn.logInForm form="post">
    <p><login:name /></p>
    <p><login:password /></p>
    <p><login:submit /></p>
  </lift:logIn.logInForm>
  ...

代码是:

object LogIn extends helper.LogHelper {

    ...
    def logInForm(in: NodeSeq): NodeSeq = {
      var name = ""
      var password = ""

          def login() = {
          logger.info("name: " + name)
          logger.info("password: " + password)
          if (name == "test1") S.redirectTo("/example")
          if (name == "test2") S.redirectTo("/example.html")
          if (name == "test3") S.redirectTo("example.html")
          S.redirectTo("/")
          }

    bind("login", in,
      "name" ->     SHtml.text(name, name = _),
      "password" -> SHtml.password(password, password = _),
      "submit" ->   SHtml.submit("Login", login))
    }
  }

调用方法'login',我可以在日志信息中查看。但正如我所说,无论我输入哪个名称,我总是以空白屏幕结束,但在浏览器中直接访问时,“example.html”可用。 我应该如何调用S.redirectoTo以导航到'examples.html'?另外,为什么我没有收到错误消息(我在调试级别登录)?

我认为Boot中的所有配置都是正确的,因为所有LitRules示例(statelessRewrite,dispatch,viewDispatch,snippets)都能正常工作。


编辑:

/ example不在SiteMap中。 我添加了/ example和/ index之类的:

def boot {
  ...
  val index = Menu(Loc("index", new Link(List("index"), false), "index"))
  val example = Menu(Loc("example", new Link(List("example"), false), "example"))
  LiftRules.setSiteMap(SiteMap(index, example))
  ...    
}

仍然没有任何反应: - (

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

redirectTo需要在SiteMap中的任何内容。

相关问题