2

我刚刚从他们的网站下载了播放框架,并且正在学习本教程

我注意到框架创建文件夹 app/controllers 和 app/views,但不是模型文件夹。我手动创建了它并将 Task.java 添加到它。当我到达标题为“渲染第一页”的部分并打开时,localhost:9000/tasks我收到一个编译错误,上面写着package play.models does not exist. 这是我的 Task.java 的样子:

package models;
import java.util.*;

public class Task {
    public Long id;
    @Required
    public String label;

    public static List<Task> all() {
        return new ArrayList<Task>();
    }

    public static void create(Task task) {
    }

    public static void delete(Long id) {
    }
}

这是application.java,产生编译错误的文件:

package controllers;

import play.*;
import play.mvc.*;

import views.html.*;
import play.data.*;  
import play.models.*;    // COMPILATION ERROR: "package play.models does not exist"!

public class Application extends Controller {
static Form<Task> taskForm = Form.form(Task.class);

public static Result index() {
    //return ok(index.render("Your new application is ready."));
    return redirect(routes.Application.tasks());
}

public static Result tasks() {
    return ok(views.html.index.render(Task.all(), taskForm));
}

public static Result newTask() {
    return TODO;
}

public static Result deleteTask(Long id) {
    return TODO;
}   
}
4

3 回答 3

0

本教程中的这一步非常令人困惑(恕我直言),而是向下滚动到Persist the tasks in a database描述准备模型以与 DB 合作的部分:)(它扩展了Model类,使用正确的注释等)

正如您所认识到的那样,您需要自己创建一个models包。

也正如cYn所写:您应该将模型导入models.SomeModel到您的控制器中

于 2013-07-22T21:59:30.377 回答
0

我相信它应该是import models.Task;相反的import play.models.*;

于 2013-07-22T21:45:56.337 回答
0

您是正确的 HukeLau_DABA ,Play 不会为您创建模型包。你必须创建它。我在我的应用程序控制器类中获得了这些导入。我运行了这个示例播放应用程序。

import play.api._
import play.api.mvc._
import play.api.data.Form
import play.api.data.Forms._
import models.Task

Eclipse 中的另一件事是它不会自动导入必要的导入。现在有点痛苦,一旦 IDE 支持变得更好,我希望这会改变。

于 2013-07-23T01:05:02.587 回答