japid42模板引擎 - 更改默认的japit根视图目录

时间:2013-03-16 20:06:39

标签: playframework-2.0 japid

如果使用Play2和japid42的示例应用程序,您将看到它在以下默认结构下保存japid的视图:

{your_app}/japidroot/japidview

如何将其更改为:{your_app}/app/views ?(标准/经典游戏的结构)

2 个答案:

答案 0 :(得分:0)

确定。我已经弄明白了。

public class Global extends JapidRenderer {
    @Override
    public void onStartJapid() {
        setTemplateRoot("app");
...

这个配置说japid“app”文件夹是japid脚本所在的root,然后它试图找到/查找'japidviews'文件夹。

所以,我需要做的是:

  
      
  1. 在app / rapidviews中创建我的快速模板(html文件)
  2.   
  3. 让japd使用setTemplateRoot(..)方法知道这个'rapidviews'的位置
  4.   

我可以拥有“japidviews”但是“观点”。至少它在“app”目录中,但不在外面。

答案 1 :(得分:0)

import play.Play;
import play.mvc.Http.RequestHeader;
import play.mvc.Result;
import play.mvc.Results;
import cn.bran.japid.template.JapidRenderer;
import cn.bran.play.JapidController;

public class Global extends JapidRenderer {
  @Override
  public void onStartJapid() {
    setTemplateRoot("japidroot");
    setLogVerbose(true);
    setKeepJavaFiles(false); // keep the Java code derived from Japid scripts in memory only
  }

  @Override
  public Result onError(RequestHeader h, Throwable t) {
    if (Play.application().isProd())
      return Results.internalServerError(JapidController.renderJapidWith("onError.html", h, t));
    else
      return super.onError(h, t);
  }

  @Override
  public Result onBadRequest(RequestHeader r, String s) {
    if (Play.application().isProd())
      return Results.badRequest(JapidController.renderJapidWith("onBadRequest.html", r, s));
    else
      return super.onBadRequest(r, s);
  }

  @Override
  public Result onHandlerNotFound(RequestHeader r) {
    // usually one needs to use a customized error reporting in production.
    //
    if (Play.application().isProd() || Play.application().isDev())
      return Results.notFound(JapidController.renderJapidWith("onHandlerNotFound.html", r));
    else
      return super.onHandlerNotFound(r);
  }
}