lift net.liftweb.http.s # param لا يعمل مثل wiki يقول
سؤال
أحاول نسخ الأمثلة في ويكي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
شكرا.
المحلول
يجب عليك تغيير هذا الرمز أيضا، كما هو موضح في المثال في صفحة Wiki، التي سأقوم بنسخها هنا:
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("")
)
لاحظ أنه يتم تعريف Whifield بشكل مختلف تماما.
لا تنتمي إلى StackOverflow