java - Play Framework 模板的自定义 java 扩展

标签 java playframework playframework-1.x

我正在使用 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/

相关文章:

java - 使用图形和 Java OOP 的类似于 Tic Tac Toe 的游戏的问题

java - 如何将字符串转为整数并相加?

java - Play-为什么会出现PersistenceException?

java - Play-Morphia with Play 1.4

java - 将 MySQL 连接器 Jar 链接到我的依赖项 Java Play Framework 1.x

spring-mvc - 将 Play 框架应用程序转换为 Spring MVC

java - Java 中的自动格式化 HTML 字符串

java - 为什么我使用 hashcode builder 为 2 个相同的对象获得不同的 hashcode 值?

playframework - 未绑定(bind) play.api.Application 的实现

scala - 玩迁移替代方案