我正在使用升降机和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
}
否则您的代码块只返回最后一个表达式,并将第一个表达式作为无操作而丢弃。