在lift框架中将参数从代码片段传递到下一页



我正在使用升降机和scala来创建一个示例web应用程序。我在我的应用程序中有两个页面。第一个有一个表单,从用户获取票证信息,同时点击提交它将调用代码片段。我想把我的表单值显示到下一页。我提到了这个问题如何在一个HTML页面中获得参数从一个片段与Lift框架,但与此有关的一些问题。到目前为止,我尝试了以下代码。

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>

在只有一个参数的情况下可以很好地工作。如果我在页面("#toStation" #>r.destination)中打印第二个参数,则第一个打印值将消失。这里只打印最后一个值。我怎么能把这两份都打印出来呢?有人能替我回答吗?一些投入将是有价值的。谢谢! !

必须使用&方法链接CSS选择器

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

否则您的代码块只返回最后一个表达式,并将第一个表达式作为无操作而丢弃。

最新更新