我使用lift和scala创建一个示例Web app.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>
但只有一个参数时它才能正常工作。如果我在页面中打印第二个参数("#toStation" #>r.destination
),则第一个打印值正在消失。这里只打印最后一个值。我怎么能打印这两个。任何人都可以回答我。一些投入将是有价值的。感谢!!!
答案 0 :(得分:2)
您必须使用&
方法链接CSS selectors。
showTicketDetails.ticketDetails.get.map { r =>
"#fromStation" #> r.source &
"#toStation" #> r.destination
}
否则,您的代码块仅返回最后一个表达式,并将第一个表达式作为无操作丢弃。