如何在Play 2模板中访问嵌套模型属性

时间:2012-06-05 07:57:27

标签: scala attributes playframework nested playframework-2.0

我在Play 2项目中获得了这两个模型:

@Entity
public class Site extends Model{

    @Id
    public String adId;

    @Required
    public String name;

    @Required
    @OneToMany (cascade = CascadeType.ALL)
    public List<Room> rooms;
...
}//end of class

@Entity
public class Room extends Model {

    @Id
    @Required
    public String adId;

    @Required 
    public String name;

    public List<Reservation> reservations = new ArrayList<Reservation>();

...
}

当我在view.scala.html

中使用此代码时
            var treeData = [                            
                    @for(site <- sites) {
                        {title: "@site.name", tooltip: "@site.adId",
                            children: [
                                @for(room <- site.rooms) {
                                    {title: "@room.name", tooltip: "@room.adId"},
                                }
                            ]
                        },
                    }
                ];

我无法访问site.rooms 如果我在服务器端测试它,则存在数据。

另一件奇怪的事情是我得到了site.adId,但是site.name仍然是空的......

如果有人知道我做错了什么......

(抱歉英语不好,不是我的母语)。

2 个答案:

答案 0 :(得分:2)

您需要getter才能在模板/ scala中访问数据。至少是那个为我修好的东西。我想我在mailinglist上找到了相关信息:

  

此问题已在之前讨论过。你必须使用私人领域和   公共访问器方法,如果你想使用Ebean延迟加载(或任何   来自Scala代码的其他Java魔法。

答案 1 :(得分:0)

或者在查询期间获取数据:finder.fetch("rooms")query().findList()