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

相关文章
相关标签/搜索