Lift net.LiftWeb.http.s#Param не работает, как вики говорит

StackOverflow https://stackoverflow.com/questions/1178237

  •  19-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь копировать примеры в викиhttp://wiki.liftweb.net/index.php/hello_darwin

в примере HelloForm2.scala

"submit" -> submit(?("Send"), () => {println("value:" + who + " :: " + param("whoField"))}),

Это всегда печатает

value:Full(hogehoge) :: Empty" even if i set the who as "object who extends RequestVar(Full("world"))

Я что -то не так делаю?

Извините, что забыл опубликовать полный код, я уже пробую второй в вики, как ниже. index.html

<lift:surround with="default" at="content">
<h2>Welcome to your project!</h2>
<lift:HelloWorld.show form="POST">
    Hello <hello:who />
    <br />
    <label for="whoField">Who :</label>
    <hello:whoField />
    <hello:submit />
</lift:HelloWorld.show>
</lift:surround>

и helloworld.scala

class HelloWorld {
  object who extends RequestVar(Full("world"));
  def show(xhtml: NodeSeq): NodeSeq ={
    bind("hello", xhtml,
      "whoField" -> text(who.openOr(""), v => who(Full(v))) % ("size" -> "10") % ("id" -> "whoField"),
      "submit" -> submit(?("Send"), () => {println("value:" + who.openOr("") + " :: " + param("whoField"))}),
      "who" -> who.openOr("")
    )
  }
}

Теперь, кто показывает правильные на странице, но консоль все еще печатаетvalue:hogehoge :: Empty

Я использую лифт 1.0

Спасибо.

Это было полезно?

Решение

Вы также должны изменить этот код, как показано в примере на странице вики, которую я копирую здесь:

  bind("hello", xhtml, 
       "whoField" -> text(who.openOr(""), v => who(Full(v))) % ("size" -> "10") % ("id" -> "whoField"),
       "submit" -> submit(?("Send"), () => {println("value:" + who.openOr("") + " :: " + param("whoField"))}),
       "who" -> who.openOr("")
  )

Обратите внимание, что какой определяется совсем по -другому.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top