我正在使用 Play Framework 1.2.5,并尝试使用 DateTime来自Joda Time而不是通常的 java.util.Date。我正在尝试实现一种在我的 View 中使用的格式方法。
Play 文档说我可以创建自己的 custom java extensions用于模板,但它似乎不适合我。我按照文档中的示例进行操作,但没有成功。
我的自定义扩展:
package ext;
import org.joda.time.DateTime;
import play.templates.JavaExtensions;
public class DateTimeExtensions extends JavaExtensions {
public static String format(DateTime datetime, String format) {
return datetime==null ? "" : datetime.toString(format);
}
}
我的模板代码:
${subProject?.startDate?.format('yyyy-MM-dd')}
我收到的错误:
Exception raised was MissingMethodException : No signature of method: org.joda.time.DateTime.format() is applicable for argument types: (java.lang.String) values: [yyyy-MM-dd]
看起来 Play 没有按照文档所述检测我的自定义扩展。有人对如何实现这项工作有任何建议吗?
最佳答案
你的扩展类对我来说看起来不错。 documentation指出您必须重新启动应用程序才能使扩展生效。如果这不起作用,请尝试运行 play clean
。这样做会删除临时文件,包括缓存的字节码,这有望解决您的问题。
关于java - Play Framework 模板的自定义 java 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18082109/