2014-01-18 27 views
0

即时通讯使用Play相当新颖!并使用Scala,我不知道如何将自定义类类型传递到视图中! 2.2.x中传递自定义类以播放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

我认为你要么需要完全限定类名

@(categories: Array[model.Category]) 

或导入模型包到您的模板

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

您还可以定义通用进口所有您的项目模板/ Build.scala

val main = PlayProject(…).settings(
    templatesImport += "model._" 
) 

documentation

+0

是的,@(categories:Array [model.Category])像一个魅力。应该意识到,我认为(错误地)它将包括模型文件夹中的所有内容 – RichyHBM