Playframework 重写mvc.Controller.template()
我想为单独的移动视图和桌面视图覆盖方法模板()。 我在mvc.Controller中创建了一个新方法(isMobile()),以了解访问者是否使用手机 isMobile()如果是手机,则返回true 在template()中,我调用isMobile(),如果返回true,我将更改路径 通常情况下,这应该是可行的。但是没有。即使我破坏了模板方法,应用程序仍然可以工作 我试图停止并重新启动应用程序,但应用程序仍然可以工作 谢谢 编辑:Playframework 重写mvc.Controller.template(),playframework,playframework-1.x,Playframework,Playframework 1.x,我想为单独的移动视图和桌面视图覆盖方法模板()。 我在mvc.Controller中创建了一个新方法(isMobile()),以了解访问者是否使用手机 isMobile()如果是手机,则返回true 在template()中,我调用isMobile(),如果返回true,我将更改路径 通常情况下,这应该是可行的。但是没有。即使我破坏了模板方法,应用程序仍然可以工作 我试图停止并重新启动应用程序,但应用程序仍然可以工作 谢谢 编辑: 好的,我想我需要知道如何重新编译播放库来保存我的更改。如果要重新
好的,我想我需要知道如何重新编译播放库来保存我的更改。如果要重新编译对框架核心代码的更改,请转到框架文件夹并键入“ant” 您也可以在上签出我的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;
}
});
}
}
@OnApplicationStart
公共静态类引导加载程序扩展作业{
@凌驾
公共职务{
Controller.registerTemplateNameResolver(新的ITemplateNameResolver(){
@凌驾
公共字符串resolveTemplateName(字符串templateName){
//用用户代理检测逻辑替换以下语句
返回UserAgent.isMobile()?“mobile/”+templateName:templateName;
}
});
}
}
请确保在克隆my fork之后执行
git checkout 1.2.x
,然后执行cd framework;ant
编译。感谢您的帮助。出于安全考虑,我不能用你的叉子。