Lift net.liftweb.http.s#Param funktioniert nicht wie Wiki sagt
Frage
Ich versuche, die Beispiele in Wiki zu kopierenhttp://wiki.liftweb.net/index.php/hello_darwin
Im Beispiel von HelloForm2.Scala
"submit" -> submit(?("Send"), () => {println("value:" + who + " :: " + param("whoField"))}),
Es druckt immer
value:Full(hogehoge) :: Empty" even if i set the who as "object who extends RequestVar(Full("world"))
Mache ich etwas falsch?
Tut mir leid, dass ich vergessen habe, den vollständigen Code zu veröffentlichen. Ich versuche den zweiten im Wiki bereits wie unten. 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>
und 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("")
)
}
}
Jetzt zeigt die WHO korrekt auf der gerenderten Seite, aber die Konsole druckt immer nochvalue:hogehoge :: Empty
Ich benutze Lift 1.0
Danke.
Lösung
Sie müssen diesen Code auch ändern, wie im Beispiel auf der Wiki -Seite gezeigt, die ich hier kopieren werde:
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("")
)
Beachten Sie, dass Whofield sehr unterschiedlich definiert ist.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow