效果图:

一、写控制器 
1.在controller包中新建AdminController后台控制器,继承Controller,实现一个index方法,作为的处理方法.

/admin

后面,这个控制器中还可以定义管理员登录等的一些方法.

package cn.pangpython.controller;

import com.jfinal.core.Controller;

public class AdminController extends Controller {
public void index(){
renderText("后台主页");
}
}

2.在controller包中新建UserController用户控制器,继承Controller

package cn.pangpython.controller;

import com.jfinal.core.Controller;

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

二、定义前后端路由,并绑定控制器 
1.在routes包中新建FrontRoutes路由器,继承JFinal的Routes

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的Routes

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与后台控制器绑定 
三、将路由添加进JFinal配置文件中 
在config包中MyJFinalConfig类中重写的configRoute方法中实例化前后台路由

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

单独定义前后台路由这个方法是JFinal 
官方文档中建议的做法,有利于大项目的分工协同. 
MyJFinalConfig.java

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文件就可以看到效果了.

参考原文:https://blog.csdn.net/u012995856/article/details/52739246

JFinal Web开发学习(三)前后台路由设计的更多相关文章

  1. JFinal Web开发学习(二)目录、架构、package设计

    package分类 config是JFinal的项目配置 controller是控制器 handler可以设置全局处理器,例如判断用户请求中是否直接请求 FreeMarker的模板文件ftl或者htm ...

  2. JFinal Web开发学习(六)验证码验证和注册细节

    效果: 实现了注册界面的验证码验证.确认密码.密码md5加盐加密.C3P0插件数据库操作.读取外部配置文件. 1.在注册页面添加了确认密码输入框,修改了字段名称 <!DOCTYPE html&g ...

  3. JFinal Web开发学习(五)注册界面和后端验证

    效果: 直接点击注册后 : 后端验证是可靠地,前端js验证是不可靠的.只需要在浏览器删除js验证代码即可突破js验证. 1.注册界面 在WebRoot下新建regist.jsp <%@ page ...

  4. JFinal Web开发学习(一)开启HelloWorld

    初次接触JFinal框架,接触过MVC思想,接触过Spring. JFinal官网: http://www.jfinal.com/ 之前很嫌弃JavaWeb开发,主要原因是繁琐的xml配置. 官方推荐 ...

  5. JFinal Web开发学习(九)后台添加前台显示博客

    效果: 发博客: 显示博客: 后台:使用hui-admin,文章编辑器是百度开源的ueditor 前台:使用layui前端框架 1.写控制器BlogController controller包中 pa ...

  6. JFinal Web开发学习(八)后台集成H-ui-admin前端框架

    h-ui-admin是一个很不错的前端框架h-ui实现的一个后台管理系统的前端. 1.在WebRoot目录下新建admin目录 2.下载h-ui-admin(当前最新是2.5版本)并解压至admin文 ...

  7. JFinal Web开发学习(七)使用layUI美化的登录功能

    效果: 验证码还是没有布局好.背景比较怀古. 1.写前端html login.jsp <!DOCTYPE html> <html> <head> <meta ...

  8. JFinal Web开发学习(四)数据库连接与自动生成model

    1.新建数据库jfinal_test,user表 /* Navicat MySQL Data Transfer Source Server : . Source Server Version : 50 ...

  9. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

随机推荐

  1. KVM虚拟化技术(二)KVM介绍

    KVM:Kernel Virtual Machine KVM是基于虚拟化扩展的x86硬件,是Linux完全原生的全虚拟化解决方案.部分半虚拟化支持,主要是通过半虚拟网络驱动程序的形式用于Linux和W ...

  2. MVC part3

    SpringMVC原理图 SpringMVC接口解释 DispatcherServlet接口: Spring提供的前端控制器,所有的请求都有经过它来统一分发.在DispatcherServlet将请求 ...

  3. StarRatingBar星星切换动画《IT蓝豹》

    StarRatingBar星星切换动画 StarRatingBar星星切换动画,很久没有学习一下这个RatingBar了,今天来看看这个RatingBar的动画切换效果,本例子主要是RatingBar ...

  4. VFS: Cannot open root device "nfs" or unknown-block(0,255)错误的解决

    1. 解决办法:在内核配置时候文件系统中选中Root file system on NFS

  5. SpringBoot SpringSession redis SESSION

    号称无缝整合httpsession 共享, 但注意如果存在第三方框架,例如SESSION并发控制,这个是需要自己重写session名单的. 关于redis session 共享 的session并发控 ...

  6. spingboot @EnableScheduling

    springboot让开发更简单!springmvc中启用定时任务还得需要在xml中进行配置启用并且要配置扫描器,但是springboot只需要一个注解就可以. @EnableScheduling 无 ...

  7. Netty 能做什么

    作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,会点SSH,写几个MVC,访问数据库和缓存,这些只是初等Java程序员干的事.如果你要进阶,想了解J ...

  8. Collection集合总结,List和set集合的用法,HashSet和LinkedHashSetde用法

    首先:Collection是List集合和Set集合的父类,同时,它们三个都为接口,不能直接实例化,所以需要,List和set的子类来实例化. List的子类: ArrayList类和LinkedLi ...

  9. Using Fetch

    [Using Fetch] This kind of functionality was previously achieved using XMLHttpRequest. Fetch provide ...

  10. python爬虫相关基础概念

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.但是php在实现爬虫中支持多线程和多进程方面做得不好. 2.java ...