Jfinal3.5 模板與視圖 路徑理解

模板路徑與路由路徑是兩件事情。    

public void configEngine(Engine me) {
        // xg添加,shiro標籤支持
        // ShiroKit.initDirective(me);
        // me.addDirective("userCount", UserCountTag.class);
        me.setDevMode(true);
        // me.addSharedObject("so", new ShiroFunction());
        // me.addSharedObject("menu", new MenuFunction());
        // me.addSharedObject("breadcrumbs", new BreadCrumbsFunction());
        me.addSharedObject("xg", XgXg.getInstance());
        me.setBaseTemplatePath(PathKit.getWebRootPath() + "");// 模板基礎解析路徑爲 網站根
        me.addSharedFunction("/WEB-INF/view/common/_layout.html"); // 模板方法 全局化
        me.addSharedFunction("/WEB-INF/view/common/_paginate.html");
    }

在添加全局模板時,使用的是Engine的baseTemplatePath做爲路徑基準,上面紅的是默認的設置值,若改成自己的,一定要加回它,否則出來的路徑不是你想要的,只有\這樣的。

 

另一個地方,是視圖路由的找模板(稱爲view,當另一個理解更好),

    public void configRoute(Routes me) {
        me.setBaseViewPath("/WEB-INF/view"); // 設置controller視圖的相對位置 不同路由不同view基址                                        

        me.add("/", MainController.class, "/"); // 第三個參數爲該Controller的視圖存放路徑
        me.add("/blog", BlogController.class); // 第三個參數省略時默認與第一個參數值相同,在此即爲baseViewPath+"/blog/",有方法再加方法,無方法 +"index"
        me.add("/user", UserController.class); // 第三個參數省略時默認與第一個參數值相同,在此即爲
        me.add("/role", RoleController.class); 
        me.add("/res", ResController.class); 
        // me.add("/login", IndexController.class,"/index"); //    
        // me.add(new BizRoutes());
        // me.add(new AdminRouts());
    }

具體找view的路徑是  baseTemplatePath+ (baseViewPath+約定路徑)+方法名,
或者有第三參數時: baseTemplatePath+ 第三參數+方法名,

 

至於模板內部 #include("相對路徑"),我還沒試過用絕根路徑,使用 ../../這種路徑還沒出過錯。是根在 webrootPath,還是baseViewPath,不太確定。有結論了再來補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章