2009-07-24 9 views
1

は、私はそれが常にリフトnet.liftweb.http.S#のparamが

を印刷しHelloForm2.scala

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

の例ではウィキの例 http://wiki.liftweb.net/index.php/Hello_Darwin

をコピーしようと言います

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

私は何か問題がありますか?

申し訳ありませんが、完全なコードを投稿するのを忘れてしまいました。私はすでに以下のようなWikiの2番目のコードを試しています。 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("") 
    ) 
    } 
} 

は現在、レンダリングされたページで正しい示しているが、コンソールはまだリフト1.0

を使用して value:hogehoge :: Empty

イムを印刷しますありがとう。

ありがとう。

答えて

1

私はここにコピーしますwikiページに例のように、あまりにもそのコードを変更する必要があります。whoFieldは非常に異なって定義されて

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("") 
) 

注意。

+0

ありがとう、私は完全なコードを投稿するのを忘れました。 そして、はい、私はそれがすでに言ったのと同じだと思います。 リフトウェイを使用せず、テキストフィールドの名前を "whoFiled"にして、param( "whoField")が正しく表示されるようにするとwikiページのリフトウェイを使用すると、自動的にテキストフィールドの名前が生成され、paramは常に自分のコードにEmptyを表示します。 –

+0

param( "whoField")のように見えますが、Emptyは問題ありません。 ありがとう –