如何在Play框架中使用@?

时间:2016-06-06 21:18:00

标签: html scala playframework

我目前正在学习游戏框架,我在几个教程视频中看到过在声明之前使用@的人。

例如,在index.html文件中:

@main 

@ message

@做什么?它是如何在html文件中使用的?它让我想起了很多JQuery中的$。

1 个答案:

答案 0 :(得分:0)

在第一种情况下,@Entity@Id这些是Java annotations - 它们在Java类中用于不同的目的(根据它们的目的地)。您可能会将其显示为Ebean模型的一部分,请检查its docs以查看它们的作用,示例:

package models;

import java.util.*;
import javax.persistence.*;

import com.avaje.ebean.Model;
import play.data.format.*;
import play.data.validation.*;

@Entity
public class Task extends Model {

    @Id
    @Constraints.Min(10)
    public Long id;

    @Constraints.Required
    public String name;

    public boolean done;

    @Formats.DateTime(pattern="dd/MM/yyyy")
    public Date dueDate = new Date();

    public static Finder<Long, Task> find = new Finder<Long,Task>(Task.class);
}

Twirl模板中使用的第二个at通常表示命名变量或动态语句的开头,即:

<title>@pageTitle</title>
<ul>
  @for((item, index) <- myItems.zipWithIndex) {
    <li>Item @index is @item</li>
  }
</ul>

其中@pageTitle@index@item =变量,
@for(...){ ... }它只是一个循环块,请注意myItems不需要@符号,因为它被识别为Scala参数)

Twirl documentation

中对此进行了描述

正如您所看到的,@ char在两种情况下没有任何联系,它们具有完全不同的含义。

为了更好地理解,首先要熟悉链接的Twirl文档,以及一般的Play文档。然后研究Play团队准备的几个示例应用程序,以实现哪个。