如何解决Lift Scala-重定向不适用于两相形式
| 我有一个两阶段的表单,我正在尝试在Lift Scala中实施。我的表格处于第一阶段,但第二阶段没有按预期工作。 第一个表单要求用户提供一些输入,提交后,它将带用户进入第二个表单,其中包含显示的第一个表单的详细信息。用户可以在文本字段中输入一些文本,然后单击提交以查看表单结果。第二种形式应该对任何其他用户都可用,以便他们可以输入初始用户给出的标题说明。 它的工作方式如下-用户1添加标题(表单第一阶段),另一个用户可以输入描述(表单第二阶段),然后提交表单以查看结果。但是,当用户在表单第二阶段输入描述并单击提交时,将不会发生任何事情。没有重定向,没有错误。 任何帮助对此表示感谢。 我的代码在下面,这是正确的方法吗?class TwoPhaseForm extends DispatchSnippet with Logger {
def dispatch : DispatchIt = {
case \"addformphaseone\" => addformphaseone _
case \"viewformphaseone\" => viewformphaseone _
case \"addformphasetwo\" => addformphasetwo _
case \"viewresults\" => viewresults _
}
object currentAccountVar extends RequestVar[Entry]({
Entry.create.author(User.currentUser.open_!)
})
def currentAccount = currentAccountVar.is
//The first part of the form
def addformphaseone (xhtml : NodeSeq) : NodeSeq = {
def doSave () = {
currentAccount.validate match {
case Nil =>
currentAccount.save
S.redirectTo(\"/viewformphaseone?id=\" + currentAccount.id)
case x => S.error(x)
}
}
val acct = currentAccount
bind(\"entry\",xhtml,\"id\" -> SHtml.hidden(() => currentAccountVar(acct)),\"title\" -> SHtml.text(currentAccount.title.is,currentAccount.title(_)),\"submit\" -> SHtml.submit(\"Submit\",doSave))
}
//view the details from form phase one
def viewformphaseone(xhtml : NodeSeq) : NodeSeq = {
val t = Entry.find(S.param(\"id\"))
t.map(t =>
bind(\"entry\",\"title\" -> t.title.toString,)) openOr <span>Not found!</span> <b>Not found!</b>
}
//Second phase of the form
def addformphasetwo (xhtml : NodeSeq) : NodeSeq = {
def doSave () = {
currentAccount.validate match {
case Nil =>
currentAccount.save
S.redirectTo(\"/results\")
case x => S.error(x)
}
}
val t = Entry.find(S.param(\"id\"))
t.map(t =>
bind(\"entry\",\"desc\" -> SHtml.text(currentAccount.desc.is,currentAccount.desc(_)),doSave)
)) openOr <span>Not found!</span> <b>Not found!</b>
}
//view the results from both forms
def viewresults(xhtml : NodeSeq) : NodeSeq = {
val t = Entry.find(S.param(\"id\"))
t.map(t =>
bind(\"entry\",\"desc\" -> t.desc.toString,)) openOr <span>Not found!</span> <b>Not found!</b>
}
}
解决方法
一个典型的男生错误。摘自《探索缆车手册》:
如果form属性包含“ POST”或“ GET”值,则将使用指定的提交方法将适当的form标签发送到XHTML中。如果您在生成表单的代码段中省略了此标签,则会显示表单元素,但不会提交表单。
我错过了html文件中的
form=\"POST\"
标记。因此该表格未提交
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。