加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Products.scala中找不到闪存

发布时间:2020-12-16 08:49:38 所属栏目:安全 来源:网络整理
导读:我目前正在阅读Peter Hilton的“Play for Scala”.我刚刚完成了第一个示例Play应用程序的结束,您可以在其中构建回形针目录. 但是在编译时我得到一个编译错误,告诉我没有找到值’flash’.通常这是我犯过的一个简单错误,但考虑到我只是按照书中的指南,我无法确
我目前正在阅读Peter Hilton的“Play for Scala”.我刚刚完成了第一个示例Play应用程序的结束,您可以在其中构建回形针目录.

但是在编译时我得到一个编译错误,告诉我没有找到值’flash’.通常这是我犯过的一个简单错误,但考虑到我只是按照书中的指南,我无法确定修复.

错误位于“NewProduct”函数的第52行和第53行

这是代码:

package controllers

import play.api.mvc.{Action,Controller}
import models.Product
import play.api.data.Form
import play.api.data.Forms.{mapping,longNumber,nonEmptyText}
import play.api.i18n.Messages
import play.api.mvc.Flash

object Products extends Controller {

    private val productForm: Form[Product] = Form(
        mapping(
            "ean" -> longNumber.verifying(
                "validation.ean.duplicate",Product.findByEan(_).isEmpty),"name" -> nonEmptyText,"description" -> nonEmptyText
            )(Product.apply)(Product.unapply)
        )

    def list = Action {implicit request =>
        val products = Product.findAll

        Ok(views.html.products.list(products))
    }

    def show(ean: Long) = Action {implicit request =>
        Product.findByEan(ean).map {product =>
            Ok(views.html.products.details(product))
        }.getOrElse(NotFound)
    }

    def save = Action { implicit request =>
        val newProductForm = productForm.bindFromRequest()

        newProductForm.fold(
            hasErrors = {form =>
                Redirect(routes.Products.newProduct()).
                    flashing(Flash(form.data) + ("error" -> Messages("validation.errors")))
            },success = {newProduct =>
                Product.add(newProduct)
                val message = Messages("products.new.success",newProduct.name)
                Redirect(routes.Products.show(newProduct.ean)).
                    flashing("success" -> message)
            }
        )
    }

    def newProduct = Action { implicit request =>
        val form = if(flash.get("error").isDefined)
            productForm.bind(flash.data)
        else
            productForm

        Ok(views.html.products.editProduct(form))
    }
}

解决方法

示例正在使用Play< 2.3,您可能想要检查您当前使用的是哪个版本.使用Play> 2.3,必须使用request.flash.在这两种情况下,您都可以使用request.flash(更明确).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读