传递自定义类来播放2.2.x视图

时间:2014-01-18 18:39:27

标签: scala playframework playframework-2.0

我使用Play相当新!并且使用scala,我无法弄清楚如何将自定义类类型传递给播放中的视图! 2.2.x的。

我想要完成的是:

有一个基类(例如)

public abstract class Category {
    String Name;
    String Info;
    String Link;
}

将一些这些传递给视图:

@(categories: Array[Category])

@main{
{
    //In here, iterate over all the categories and display their information.
}

使用控制器

public static Result categories() {
    Category[] categoriesArray = new Category[3];
    categoriesArray[0] = new blahCategory(...);        
    categoriesArray[1] = new fooCategory(...); 
    categoriesArray[2] = new someCategory(...); 

    return ok(categories.render( categoriesArray ));
}

我在名为“model”的文件夹下有抽象类,在“view”文件夹中有scala.html文件。

然而,当去网址时,玩!错误:

not found: type Category
In /home/me/MySite/app/views/categories.scala.html at line 0.

1 @(categories: Array[Category])
2 
3 @main{
4 @heading()
5 {
6 }

2 个答案:

答案 0 :(得分:2)

我认为您需要完全限定班级名称

@(categories: Array[model.Category])

或将模型包导入模板

@import model._
@(categories: Array[Category])

您还可以在project / Build.scala

中定义所有模板的通用导入
val main = PlayProject(…).settings(
    templatesImport += "model._"
)

来自documentation

答案 1 :(得分:0)

将您的课程添加到您的构建文件中的templatesImport设置。

http://www.playframework.com/documentation/2.2.x/ScalaTemplates