值“属性”不是“模型”的成员

Posted

技术标签:

【中文标题】值“属性”不是“模型”的成员【英文标题】:Value "attribute" is not a member of "Model" 【发布时间】:2013-04-03 23:46:43 【问题描述】:

我正在按照本教程http://www.playframework.com/documentation/2.1.1/JavaTodoList学习Play Framework的开发流程。

但是我在index.scala.html 视图中收到此编译错误:

"值描述不是Product的成员"

这是我的产品型号:

package app.models;

import java.util.*;
import javax.validation.*;
import play.data.validation.Constraints.*;
 
/**
 * Product.
 */
public class Product

    public int id;
    public String name;
    public String description;
    public String dimensions;
    public double price;

    public static List<Product> all()
    
        return new ArrayList<Product>();
    

    public static void create(Product product)
    
        return;
    

    public static void delete(Long id)
    
        return;
    

这是视图的代码:

@(products: List[Product], productForm: Form[Product])

@import helper._

@main("ezbuy") 
    <h1>@products.size() product(s)</h1>
    
    <ul>
        @for(product <- products) 
            <li>
                @product.description
                
                @form(routes.Application.deleteProduct(product.id)) 
                    <input type="submit" value="Delete">
                
            </li>
        
    </ul>
    
    <h2>Add a new product</h2>
    
    @form(routes.Application.newProduct()) 
        @inputText(productForm("label")) 
        
        <input type="submit" value="Create">
    

我只是没有找到问题所在,因为我已经在视图顶部声明了产品列表,并且它正在使用 @for 语句循环。

提前致谢。

【问题讨论】:

我试过你的代码,没有发现编译错误。你发布的观点是index.scala.html吗? 【参考方案1】:

有一个 Scala 类 scala.Product (http://www.scala-lang.org/api/current/index.html#scala.Product)。 Scala 自动从 scala 包中导入所有内容。我认为你得到了那个类而不是 app.models.Product。

使用完全限定的类名:

@(products: List[app.models.Product], productForm: Form[app.models.Product])

如果您将 Product 直接放入模型包中,则不会发生该错误,因为在 Play 的 Scala 模板中默认导入模型。*。所以没有必要使用完全限定的类名。

【讨论】:

以上是关于值“属性”不是“模型”的成员的主要内容,如果未能解决你的问题,请参考以下文章

使用 MVC Razor 语法检查视图模型属性在 Javascript 中是不是具有值

为啥不能使用符号而不是字符串来访问 Rails 模型属性?

Django系列8:模型成员显性属性,隐性属性,ModelManager的定制

属性驱动和模型驱动 [问]

如何检查模型是不是具有某个列/属性?

PHP:如何检查给定组的成员是不是允许更改模型