使用浮点值播放框架HTML表单处理

时间:2015-03-14 12:54:12

标签: html scala playframework sorm

我正在尝试使用Scala和Play框架开发一个小型Web应用程序。 它有一个名为Product的模型,其中包含 Float 类型的字段价格

通过HTML表单接受浮点值并将其保存在测试数据库中的最佳方法是什么? 我使用sorm作为测试数据库。

1 个答案:

答案 0 :(得分:-1)

我看到你的模型定义如下:   case class Product(price: Long)

此外,您的表格可能如下所示:

val productForm = Form(
    mapping(
      "price" -> longNumber(minLength = 2, maxLength = 10)
    )(Product.apply)(Product.unapply)
  )

您的问题分为两部分:

  1. 接受数据(从HTML表单接受浮点值的最佳方式)。
  2. 保留数据(将其保存到测试数据库)
  3. 接受数据并存储

    您有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
    
    • 您还必须在project / Build.scala
    • 中添加依赖项