2012-07-27 10 views
1

如何将对象发送到斯卡拉视图如何将对象发送到斯卡拉视图

我已经写了这些文件,当我尝试建立他们,我得到这个错误,那就是在底部

描述

应用/视图/时间轴/ index.scala.html

@(token: models.Token) 

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
    Hello Mr @{token.name} 
    </body> 
</html> 

应用/控制器/ TimeLine.java

public class TimeLine extends Controller { 
    public static Result index() { 

     Token token = new Token(); 
     token.name("NInjaaa"); 

     return ok(views.html.timeline.index.render(token)); //I dont know how to send it... 

    } 
} 

应用程序/模型/ Token.java

package models; 

import play.db.ebean.Model; 

public class Token extends Model{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 5629541435986605754L; 
    public String name; 

} 

编译

[error] /Users/fbranchetti/Dropbox/webproject/timeline/app/controllers/TimeLine.java:17: cannot find symbol 
[error] symbol : method name(java.lang.String) 
[error] location: class models.Token 
[error]    token.name("NInjaaa"); 
[error]    ^
[error] /Users/fbranchetti/Dropbox/webproject/timeline/app/controllers/TimeLine.java:18: render() in views.html.timeline.index cannot be applied to (models.Token) 
[error]    return ok(views.html.timeline.index.render(token)); 
[error]            ^
[error] 2 errors 
[error] {file:/Users/fbranchetti/Dropbox/webproject/timeline/}TimeLine/compile:compile: javac returned nonzero exit code 

回答

1

时收到此错误消息,也许这是错误在你的问题,但你的Token模型应该正好在文件被放置

/app/models/Token.java

那么默认情况下它将可用于所有视图。在其他情况下,您需要指定类的全部路径,包括包。

@(token: some.non.standard.package.Token) 

编辑后:

你不需要写/使用getter和setter模型的公共领域。 Additionaly你需要传递一个token作为一个参数去这仅仅是一个斯卡拉功能

public static Result index() { 
    Token token = new Token(); 
    token.name = "Ninja"; 
    return ok(views.html.timeline.index.render(token)); 
} 
+0

它现在的投诉,因为我没有一个setter和getter的看法。 – Nolaeh 2012-07-27 13:17:28

+0

Och我重写了你的错误,它应该是:'token.name =“Some String”;' – biesior 2012-07-27 13:23:08