我现在玩电梯(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))
...
}
仍然没有任何反应: - (
有什么想法吗?
答案 0 :(得分:0)
您redirectTo
需要在SiteMap中的任何内容。