0

リフトとスカラを使用してサンプル 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)、最初に印刷された値が消えます。最後の値のみがここに出力されます。これらの両方を印刷するにはどうすればよいですか。誰か答えてくれませんか。いくつかの入力は貴重です。ありがとう!!!

4

1 に答える 1