JFinal Web開發學習(三)先後臺路由設計

效果圖:java

1、寫控制器 
1.在controller包中新建AdminController後臺控制器,繼承Controller,實現一個index方法,做爲的處理方法. python

/admin數據庫

 後面,這個控制器中還能夠定義管理員登陸等的一些方法.後端

package cn.pangpython.controller;

import com.jfinal.core.Controller;

public class AdminController extends Controller {
    public void index(){
        renderText("後臺主頁");
    }
}

2.在controller包中新建UserController用戶控制器,繼承Controllerapp

package cn.pangpython.controller;

import com.jfinal.core.Controller;

public class UserController extends Controller {
    public void index(){
        renderText("用戶主頁");
    }
}

2、定義先後端路由,並綁定控制器 
1.在routes包中新建FrontRoutes路由器,繼承JFinal的Routeside

package cn.pangpython.routes;

import com.jfinal.config.Routes;

import cn.pangpython.controller.IndexController;
import cn.pangpython.controller.UserController;

/**
 * @author pangPython
 * 前臺路由
 */
public class FrontRoutes extends Routes {

    @Override
    public void config() {
        add("/",IndexController.class);
        add("/user",UserController.class);

    }

}

其中,將根url與IndexController首頁控制器綁定,將user Url與用戶控制器綁定 
2.新建AdminRoutes繼承JFinal的Routesurl

package cn.pangpython.routes;

import com.jfinal.config.Routes;

import cn.pangpython.controller.AdminController;

/**
 * @author pangPython
 *  後臺路由
 */
public class AdminRoutes extends Routes {

    @Override
    public void config() {
        add("/admin",AdminController.class);

    }

}

其中,設置admin URL與後臺控制器綁定 
3、將路由添加進JFinal配置文件中 
在config包中MyJFinalConfig類中重寫的configRoute方法中實例化先後臺路由spa

@Override
    public void configRoute(Routes me) {
        //添加前臺路由
        me.add(new FrontRoutes());
        //添加後臺路由
        me.add(new AdminRoutes());
    }

單獨定義先後臺路由這個方法是JFinal 
官方文檔中建議的作法,有利於大項目的分工協同. 
MyJFinalConfig.java.net

package cn.pangpython.config;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.core.JFinal;

import cn.pangpython.controller.IndexController;
import cn.pangpython.routes.AdminRoutes;
import cn.pangpython.routes.FrontRoutes;


/**
 * @author pangPython
 *  JFinal 項目配置文件
 */

public class MyJFinalConfig extends JFinalConfig {

    @Override
    public void configConstant(Constants me) {
        //開啓開發模式
        me.setDevMode(true);
        //這裏能夠經過配置文件來讀取配置參數,更靈活
    }

    @Override
    public void configRoute(Routes me) {
        //添加前臺路由
        me.add(new FrontRoutes());
        //添加後臺路由
        me.add(new AdminRoutes());
    }

    @Override
    public void configHandler(Handlers arg0) {
        // 這裏能夠配置全局處理器 防止直接訪問模板文件暴露數據庫表和字段      
    }

    @Override
    public void configInterceptor(Interceptors arg0) {
        // 這裏能夠配置攔截器進項權限管理      
    }

    @Override
    public void configPlugin(Plugins arg0) {
        // 這裏能夠配置JFinal的各類插件,好比數據庫插件等
    }

    //使用JFinal內置的jetty啓動項目,直接做爲java application運行此文件
    public static void main(String[] args) {
        JFinal.start("WebRoot", 80, "/", 5);
    }

}

運行MyJFinalConfig文件就能夠看到效果了.插件

參考原文:http://www.javashuo.com/article/p-naokdmxn-cr.html

相關文章
相關標籤/搜索