2013-04-22 29 views
1

我使用lift和scala創建示例web應用程序.i在我的應用程序中有兩個頁面。第一個有一個表單,它從用戶處獲取票證信息,點擊提交時會調用片段。我想顯示我的表單值到下一頁。我提到了這個問題 How to get parameters in an HTML page passed from a snippet with Lift framework但是有些問題。到目前爲止,我嘗試了下面的代碼。 在我的第一頁段:將參數從片段傳遞到電梯框架中的下一個頁面

class ticketDetailsResponse(
    var source:String="", 
    var destination:String="") 

object BookFirstCityTrain { 
    def render = {   
      val responseForm = new ticketDetailsResponse()    
      var from = "" 
      var to = ""     
      def process() {  
          responseForm.source = from 
          responseForm.destination = to 
          S.redirectTo("ConfirmTicket.html", () => showTicketDetails.ticketDetails(Full(responseForm))) 
         } 
    "name=source" #> SHtml.text(from, from = _) & 
    "name=destination" #> SHtml.text(to, to = _) & 
    "type=submit" #> SHtml.onSubmitUnit(process) 
} 
} 

和我的第二頁面片斷

object showTicketDetails { 
    object ticketDetails extends RequestVar[Box[ticketDetailsResponse]](Empty) 
} 

class showTicketDetails { 
    def render = "*" #> { 
     showTicketDetails.ticketDetails.get.map { r => 
     "#fromStation" #> r.source 
     "#toStation" #>r.destination 
    } 
    } 
} 

和我稱爲我的第二頁段從圖像這樣:

<div data-lift="showTicketDetails" >  
     From: <span id="fromStation"></span><br /> 
     To: <span id="toStation"></span><br /> 
</div> 

但它的工作完美時t這裏只有一個參數。如果我在頁面("#toStation" #>r.destination)中打印第二個參數,則第一個打印值正在消失。這裏只打印最後一個值。我怎樣才能打印這兩個。任何人都可以爲我回答。一些投入將是有價值的。謝謝!!!

回答

3

您必須使用&方法連鎖CSS selectors

showTicketDetails.ticketDetails.get.map { r => 
    "#fromStation" #> r.source & 
    "#toStation" #> r.destination 
} 

否則,您的代碼塊只返回最後一個表達式,並將第一個表達式作爲no-op丟棄。

相關問題