我正在尝试使用Scala和Play框架开发一个小型Web应用程序。 它有一个名为Product的模型,其中包含 Float 类型的字段价格。
通过HTML表单接受浮点值并将其保存在测试数据库中的最佳方法是什么? 我使用sorm作为测试数据库。
答案 0 :(得分:-1)
我看到你的模型定义如下:
case class Product(price: Long)
此外,您的表格可能如下所示:
val productForm = Form(
mapping(
"price" -> longNumber(minLength = 2, maxLength = 10)
)(Product.apply)(Product.unapply)
)
您的问题分为两部分:
您有html表单供用户提交数据。现在,您需要编写操作来验证数据以及是否有效推送到db或显示错误消息。在这里,您可以执行以下操作:
def save = Action { implicit request =>
productForm.bindFromRequest.fold(
errors => BadRequest(views.html.product.create(errors)),
data => {
//insert data and redirect to listing view so that he can see the new data
productCollection.insert(data)
Redirect(routes.product.list())
.withNewSession
}
)
}
Play支持H2内存数据库,如果您不想使用此功能,您可以通过注释以下行添加您自己的数据库配置:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
并在下面添加详细信息:
db.default.user=user
db.default.password=qwerty
db.default.url="jdbc:postgresql://localhost:5432/"
db.default.driver=org.postgresql.Driver