如果使用 Play2 和 japid42 的示例应用程序,您将看到它在以下默认结构下拥有 japid 的视图:
{your_app}/japidroot/japidview
如何将其更改为:({your_app}/app/views ?
标准/经典游戏的结构)
如果使用 Play2 和 japid42 的示例应用程序,您将看到它在以下默认结构下拥有 japid 的视图:
{your_app}/japidroot/japidview
如何将其更改为:({your_app}/app/views ?
标准/经典游戏的结构)
好的。我已经想通了。
public class Global extends JapidRenderer {
@Override
public void onStartJapid() {
setTemplateRoot("app");
...
此配置表明 japid 的“app”文件夹是 japid 脚本所在的根目录,然后它会尝试查找/查找“japidviews”文件夹。
所以,我需要做的是:
- 在 app/rapidviews 中创建我的快速模板(html 文件)
- 使用 setTemplateRoot(..) 方法让 japd 知道这个 'rapidviews' 的位置
我可以拥有“japidviews”,但可以拥有“views”。至少它在“app”目录中,但不在外面。
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);
}
}