sollevare net.liftweb.http.S # param doesnt funziona come wiki dice
Domanda
cerco di copiare gli esempi in wiki http://wiki.liftweb.net/index.php/Hello_Darwin
nell'esempio di HelloForm2.scala
"submit" -> submit(?("Send"), () => {println("value:" + who + " :: " + param("whoField"))}),
Esso stampa sempre
value:Full(hogehoge) :: Empty" even if i set the who as "object who extends RequestVar(Full("world"))
Sono faccio qualcosa di sbagliato?
dispiace per dimenticare di inserire il codice completo, ho già provo il secondo nel wiki come qui di seguito. 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>
e 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("")
)
}
}
ora, il che mostra corretto nella pagina visualizzata, ma console ancora stampe
value:hogehoge :: Empty
im utilizzando ascensore 1.0
Grazie.
Soluzione
È necessario modificare il codice che troppo, come mostrato nell'esempio nella pagina wiki, che io copio qui:
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("")
)
Si noti che whoField è definito in modo molto diverso.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow