我正在使用Play Framework 2.0.1。我使用“play new”命令创建了一个Java应用程序。默认情况下,会创建两个视图:index.scala.html和main.scala.html
我做了一些示例教程应用程序,允许我渲染这些视图。但是,当我添加一个新视图(默认情况下在app / views /中)时,我收到一个无法找到的编译错误:
public static Result getAllCars() {
List<Car> cars = Car.getAllCars();
return ok(simpleCarView.render(cars));
}
我能做到
import views.html.index;
import views.html.main;
但不是
import views.html.simpleCarView;
控制台出错:
cannot find symbol
[error] symbol : variable simpleCarView
[error] location: class controllers.Application
我已尝试在文件目录中和eclipse中添加scala.html视图,但由于某种原因,找不到它们。我也尝试重新启动默认的Netty服务器。
关于导致这种情况的任何想法?
答案 0 :(得分:24)
这些视图不是由Eclipse编译的,只要目标\ scala-2.9.1 \ classes_managed目录位于你的eclipse项目构建路径中,就可以在eclipse编译之后看到它们。
尝试在命令行上运行“play compile”(如果你已经在游戏控制台中,只需“编译”)然后在eclipse中刷新你的项目(选择项目并点击F5)
答案 1 :(得分:4)
对于你那里的IntelliJ 12用户: 我升级到Play 2.1,这打破了我的Play IntelliJ支持插件。 这导致IntelliJ无法识别:
import views.html.*;
因此,当点击cmd + o
优化我的导入时,它已被删除。
从那以后,当运行play clean compile
时,这会导致编译错误
视图未导入:
[error] symbol : variable index
[error] location: class controllers.Application
[error] return ok(index.render());
[error] ^
[error] 1 error
[error] (compile:compile) javac returned nonzero exit code
[error] application -
所以我卸载了插件,重新启动IntelliJ和中提琴一切正常 喜欢魅力!
答案 2 :(得分:3)
你可以使用
~compile
在播放控制台中,以便在文件更改时重新编译更新的模板,Eclipse可能会立即看到更改(IDEA会这样做)。
答案 3 :(得分:2)
在我复制整个项目并尝试修改它之后发生了这种情况。 HTML视图中的更改将被忽略,因为它们未被编译。
执行$npm install -g jasmine-node
$jasmine-node --coffee spec/
.
Finished in 0.01 seconds
1 test, 1 assertion, 0 failures, 0 skipped
解决了问题。
答案 4 :(得分:1)
我也有这种行为。原来这是一个典型的复制/粘贴问题。我忘了更新import语句。
答案 5 :(得分:0)
我做了InPursuit建议的 play compile ,但是当添加一个全新的视图时,我发现我需要关闭项目并重新打开它,以便eclipse重建其“内容辅助”信息。
我只需右键单击该项目并选择“关闭项目”,然后右键单击现在为空的项目文件夹并选择“打开项目”。这很烦人,但这是对我有用的唯一方法(没有重启eclipse)。有时红色波浪线在重新开启后仍然存在,但如果我刷新它们就会消失。
答案 6 :(得分:0)
在我的情况下,我刚刚添加了以下导入:
class BusbyMoviesMainApplication : Application() {
companion object {
@JvmStatic
lateinit var instance: BusbyMoviesMainApplication
private set
}
override fun onCreate() {
super.onCreate()
instance = this
}
}
如果通过 CTRL + SHIFT + O
组织导入,Eclipse IDE将删除提到的行