我是 scala 和类型安全语言的新手,所以我可能会忽略一些基本的东西。这就是我的问题。
目标:我想提交一个只有一个文本输入的表单,并且不反映我的案例类。它将以类型结束:字符串
问题:无法从折叠中获得成功
我在前端有一个表单,我选择用 html 编写而不是 play 的表单助手(如果这是问题,愿意更改)
<form method="POST" action="@routes.Application.shorten()">
<input id="urlLong" name="urlLong" type="text" placeholder="http://www.google.com/" class="span4"/>
<div class="form-actions">
<button type="reset" class="btn">Reset</button>
<button type="submit" class="btn btn-primary pull-right"><span class="icon-random"></span> Shrtn It!</button>
</div>
</form>
处理 post 操作的控制器如下所示:
import ...
object Application extends Controller {
val newUrlForm = Form(
"urlLong" -> text
)
def shorten = Action { implicit request =>
val urlLong = newUrlForm.bindFromRequest.get
newUrlForm.fold(
hasErrors = { form =>
val message = "Somethings gone terribly wrong"
Redirect(routes.Application.dash()).flashing("error" -> message)
},
success = { form =>
val message = "Woot it was successfully added!"
Redirect(routes.Application.dash()).flashing("success" -> message)
}
}
...
}
我试图遵循/修改 Play for Scala 书中的教程,但它们的形式与案例类相匹配,而且 Play 的教程也与我的用例有所不同。连同您的答案,如果您可以包括您是如何计算出来的,那将非常有用,因此我可以更好地自行排除故障。
- http://www.playframework.com/documentation/2.0/ScalaForms
- http://www.playframework.com/documentation/api/2.0/scala/index.html#play.api.data.Forms $
另外,如果重要的话,我会使用 intellij idea 作为我的 ide