10

问题是控制器看不到我要使用的模板:

[etl_admin] $ compile [info] 将 3 个 Scala 源代码和 4 个 Java 源代码编译到 D:\ECLIPSE_WORKSPACES\play2_apps\etl_admin\target\scala-2.9.1\classes... [错误] D:\ECLIPSE_WORKSPACES\play2_apps\etl_admin\ app\controllers\EtlWorkflowSeqNodeController.java:7: 错误:包views.html.etlworkflowseqnode 不存在[错误] import views.html.etlworkflowseqnode.list; [错误]
^ [错误] D:\ECLIPSE_WORKSPACES\play2_apps\etl_admin\app\controllers\EtlWorkflowSeqNodeController.java:14:错误:找不到符号

[错误] list.render(EtlWorkflowSeqNode.findTree(jobId)) [错误] ^ [错误] 符号:变量列表 [错误]
位置:类 EtlWorkflowSeqNodeController [错误] 2 个错误 [错误] {file:/D:/ECLIPSE_WORKSPACES/play2_apps /etl_admin/}etl_admin/compile:compile: javac 返回非零退出代码 [错误] 总时间:7 s,完成 05.06.2012 17:14:44

这是控制器代码:

package controllers;

import play.mvc.Controller;
import play.mvc.Result;
import models.EtlWorkflowSeqNode;
import play.db.jpa.Transactional;
import views.html.etlworkflowseqnode.list; /*LINE #7, Eclipse really tells that there is no such package*/

public class EtlWorkflowSeqNodeController  extends Controller {

    @Transactional
    public static Result list(Integer jobId) {
        return ok(
            list.render(EtlWorkflowSeqNode.findTree(jobId))
        );
    }
}

我在我的项目树中附加了一张图片。有这样的包,有一个名为“列表”的模板。 我的日食 我做错了什么

4

5 回答 5

16

天哪,问题太简单了!*classes_managed*(此文件夹保存已编译的 scala 模板)未使用新添加的模板进行更新。我昨天确实尝试调用play compile,但没​​有帮助。新包中的新模板未编译。今天早上我打电话给play clean compile aaand ......万岁!我确实得到了编译模板和丢失包的问题(不要忘记刷新 Eclipse 项目,强制它从文件系统更新现有项目结构。它喜欢缓存所有内容。)

抱歉打扰了,好像我在阅读文档时没有专心:(

于 2012-06-06T08:12:55.670 回答
7

问题是 Eclipse 没有看到 src_managed 文件夹,该文件夹由播放框架动态更新。

转到项目→属性→java构建路径→库(这是一个选项卡)→添加外部类文件夹

然后选择 src_managed 文件夹,它应该在与您的项目相同的目录中的文件夹 target->scala-xxx 中。

这会将 src_managed 添加到您的构建路径中,Eclipse 现在将了解这些模板是有效的。

您可能需要在 play framework 控制台中运行“play clean compile”然后您可能需要在 eclipse 中运行 project -> clean

于 2012-10-08T00:09:39.463 回答
2

在 Play 2.5 中,我能够通过以下方式解决此问题:

导入视图:

import views.html.index;

然后在控制器内部:

return ok(index.render("Hello"));

像这样没有复杂问题的东西,奇怪的return ok(views.html.index.render("Hello")))是在导入时使用它不起作用然后使用它工作得很好。

当然,这里的所有答案也很有帮助,有时问题只是清理然后编译,但即使这也不是一直真正解决问题,无论您使用的是什么 IDE,我都在使用 CLI 并且也cannot find symbol出现错误。

于 2017-01-15T13:49:46.553 回答
1

要解决“包views.html 不存在”:

运行“sbt compile”或“sbt clean compile”。这应该在您的项目中创建一个文件夹结构作为 target\scala xx\twirl\main\views.html

于 2016-05-20T10:57:06.737 回答
0

据我所知,您还没有包名 etlworkflowseqnode!导入列表模板的正确方法应该是这样的:

import views.html.list;

或者,如果您要拥有多个视图,则可以使用通配符导入将它们全部导入。

import views.html.*;
于 2012-06-06T08:06:46.133 回答