1

オブジェクトを Scala ビューに送信する方法

私はこれらのファイルを書きましたが、それらをビルドしようとすると、このエラーが発生します。これは、下部に記載されています

アプリ/ビュー/タイムライン/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
4

1 に答える 1

1

質問の間違いかもしれませTokenんが、モデルは正確にファイルに配置する必要があります

/app/models/Token.java

その後、デフォルトですべてのビューで使用できるようになります。それ以外の場合は、パッケージを含むクラスへのパス全体を指定する必要があります。

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

編集後:

モデルのパブリックフィールドのゲッターとセッターを作成/使用する必要はありません。tokenさらに、Scala関数であるビューにパラメーターとしてaを渡す必要があります

public static Result index() {
    Token token = new Token();
    token.name = "Ninja";
    return ok(views.html.timeline.index.render(token));
}
于 2012-07-27T12:06:10.930 に答える