1
我現在正在用lift(2.1)玩一點點,並且LiftRules中的所有功能都按預期工作。 但我一直無法使用S.redirectTo。無論如何,我總是以一個空白的屏幕結束。 完全沒有錯誤信息!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))
}
}
的方法,「登錄」被調用時,我可以檢查在日誌信息。但正如我所說,無論輸入哪個名稱,我總是以空白屏幕結束,雖然'example.html'在直接在瀏覽器中訪問時可用。 如何調用S.redirectoTo以導航到'examples.html'?另外,爲什麼我沒有收到錯誤消息(我正在以調試級別登錄)?
我認爲Boot中的所有配置都是正確的,因爲所有LitRules示例(statelessRewrite,dispatch,viewDispatch,snippets)都能正常工作。
被修改:
/例子是不是在網站地圖。 我已經添加/例子和/指數那樣:
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))
...
}
還是什麼都沒有發生:-(
任何想法,你redirectTo
需要在地圖
有你嗎?將`example.html`頁面添加到你的`SiteMap`中? – Debilski 2011-01-11 09:07:05
2.8.0將是你正在使用的Scala版本,而不是Lift的版本,2.2版本是最新版本。版本你真的*使用! – 2011-01-11 09:55:10