2012-07-27 43 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