2011-01-11 62 views
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需要在地圖

+0

有你嗎?將`example.html`頁面添加到你的`SiteMap`中? – Debilski 2011-01-11 09:07:05

+0

2.8.0將是你正在使用的Scala版本,而不是Lift的版本,2.2版本是最新版本。版本你真的*使用! – 2011-01-11 09:55:10

回答

0

任何

相關問題