效果图: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文件就能够看到效果了.插件