0

我想为单独的移动视图和桌面视图覆盖方法 template()。我在 mvc.Controller 中创建了一个新方法 (isMobile()) 来了解访问者是否使用手机。

isMobile() 如果是手机则返回 true。

在 template() 中,我调用 isMobile(),如果返回 true,我会更改路径。

通常这应该工作。但不是。即使我破坏了模板方法,应用程序仍然可以正常工作。

我试图停止并重新启动该应用程序,但该应用程序仍然有效。

谢谢

编辑:好的,我想我需要知道如何重新编译播放库以保存我的更改。

4

1 回答 1

2

如果要重新编译对框架核心代码的更改,请转到框架文件夹并键入“ant”。

你也可以在https://github.com/greenlaw110/play查看我的 fork(更新到 1.2.5RC3)。

将以下代码添加到您的任何控制器:

@OnApplicationStart
public static class BootLoader extends Job<Object> {
    @Override
    public void doJob() {
        Controller.registerTemplateNameResolver(new ITemplateNameResolver(){
            @Override
            public String resolveTemplateName(String templateName) {
                // replace the following statement with your user agent detect logic
                return UserAgent.isMobile() ? "mobile/" + templateName : templateName;
            }
        });
    }
}

确保git checkout 1.2.x在克隆我的 fork 之后执行此操作,然后cd framework;ant进行编译。

于 2012-05-16T20:27:45.973 回答