【问题标题】:Play Framework custom java extensions for template模板的 Play Framework 自定义 java 扩展
【发布时间】:2013-08-06 13:50:46
【问题描述】:

我正在使用 Play Framework 1.2.5,并尝试使用来自 Joda TimeDateTime 而不是通常的 java.util.Date。我正在尝试实现一种格式方法以在我的视图中使用。

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')}

我收到的错误:

引发的异常是 MissingMethodException:没有方法签名:org.joda.time.DateTime.format() 适用于参数类型:(java.lang.String) 值:[yyyy-MM-dd]

Play 似乎没有像文档中所说的那样检测到我的自定义扩展。有人对如何进行这项工作有任何建议吗?

【问题讨论】:

  • 你的扩展类在我看来不错。您是否重新启动了应用程序?也许play clean 有帮助?当您不使用 ?. 运算符检查 null 值时,是否也会发生这种情况?
  • @Carsten play clean 为我工作,谢谢。将此作为答案发布,我会接受!
  • 这很有帮助,谢谢。

标签: java playframework playframework-1.x


【解决方案1】:

您的扩展类对我来说看起来不错。 documentation 声明您必须重新启动应用程序才能使扩展程序生效。如果这不起作用,请尝试运行play clean。这样做会删除临时文件,包括缓存的字节码,这有望解决您的问题。

【讨论】:

    猜你喜欢
    • 2014-08-31
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多