我有一个Play2 Framework应用程序,在IntelliJ Idea中完成一个完全缓存失效并重新启动后,我遇到了重新编译问题。我得到的错误是:
[warn] Class models.AgeGroup not found - continuing with a stub.
[error] /Users/xxx/app/views/registrations/selectPrinterView.scala.html:13: not found: value AgeGroup
[error] @for( (k, v) <- AgeGroup.optionsForGroups()) {
[error] ^
[error] /Users/xxx/app/views/registrations/selectPrinterView.scala.html:14: overloaded method value apply with alternatives:
[error] (keys: Seq[String],args: Any*)(implicit messages: play.api.i18n.Messages)String <and>
[error] (key: String,args: Any*)(implicit messages: play.api.i18n.Messages)String
[error] cannot be applied to (Any)
[error] <option value="@k">@Messages(v)</option>
[error]
我想我之前已经拥有它但不记得如何解决它。关于@Messages的第二个错误可能是相关的,并且也给了后面一个。
这是我的模板代码:
<select name="ageGroup">
@for( (k, v) <- AgeGroup.optionsForGroups()) {
<option value="@k">@Messages(v)</option>
}
</select>
我在App / models / AgeGroup:
下使用了AgeGroup类package models;
import play.i18n.Messages;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* Created on 25/11/2015.
*/
public enum AgeGroup {
U18,
O18,
BOTH,
SPECIAL;
public static Map<String, String> optionsForGroups() {
LinkedHashMap<String, String> vals = new LinkedHashMap<>();
vals.put(U18.name(), Messages.get(U18.name()));
vals.put(O18.name(), Messages.get(O18.name()));
vals.put(BOTH.name(), Messages.get(BOTH.name()));
return vals;
}
public static Map<String, String> optionsForRooms() {
LinkedHashMap<String, String> vals = new LinkedHashMap<>();
vals.put(U18.name(), Messages.get(U18.name()));
vals.put(O18.name(), Messages.get(O18.name()));
vals.put(SPECIAL.name(), Messages.get(SPECIAL.name()));
return vals;
}
}
这对我有用了两年,但现在它停止了工作,我花了两个小时而无法找出原因(并且没有对代码本身进行任何更改)。所以任何帮助都非常感谢。
答案 0 :(得分:1)
我使用命令行'Activator'并在那里运行并编译。现在它似乎因为某种原因再次在激活器和IDEA中起作用。