リフトとスカラを使用してサンプル Web アプリを作成しています。アプリには 2 つのページがあります。最初のフォームには、ユーザーからチケット情報を取得するフォームが 1 つあり、送信をクリックするとスニペットが呼び出されます。フォームの値を次のページに表示したい。Liftフレームワークを使用してスニペットから渡されたHTMLページでパラメーターを取得する方法という質問 を参照しましたが、これにはいくつかの問題があります。これまでに次のコードを試しました。 私の最初のページのスニペットで:
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)
}
}
そして私の2番目のページスニペット
object showTicketDetails {
object ticketDetails extends RequestVar[Box[ticketDetailsResponse]](Empty)
}
class showTicketDetails {
def render = "*" #> {
showTicketDetails.ticketDetails.get.map { r =>
"#fromStation" #> r.source
"#toStation" #>r.destination
}
}
}
そして、私は次のようにビューから2番目のページスニペットを参照しました:
<div data-lift="showTicketDetails" >
From: <span id="fromStation"></span><br />
To: <span id="toStation"></span><br />
</div>
ただし、パラメーターが1つしかない場合は完全に機能します。ページの 2 番目のパラメーターを印刷すると ( "#toStation" #>r.destination
)、最初に印刷された値が消えます。最後の値のみがここに出力されます。これらの両方を印刷するにはどうすればよいですか。誰か答えてくれませんか。いくつかの入力は貴重です。ありがとう!!!