JFinal学习02 ---- JFinalConfig

JFinal学习02 —— JFinalConfig

视频来源https://www.bilibili.com/video/BV1Bt411H7J9/?spm_id_from=333.337.search-card.all.click


1、JFinalConfig介绍

  • JFinalConfig是配置类,一个基于JFinal的JavaWeb项目中必须创建一个继承自JFinalConfig类的子类,实现对整个项目的配置
  • JFinalConfig 子类需要实现以下抽象方法:
public class DemoConfig extends JFinalConfig {
    // 配置常量
	public void configConstant(Constants me) {
	}

    // 配置路由
	public void configRoute(Routes me) {
	}

    // 配置插件
	public void configPlugin(Plugins me) {
	}

    // 配置拦截器
	public void configInterceptor(Interceptors me) {
	}

    // 配置处理器
	public void configHandler(Handlers me) {
	}
}


2、configConstant() 配置常量

配置常量值

下面列举其中一些:

	public void configConstant(Constants me) {
		// 设置开发模式 
		// true:console控制台接收请求时会有相应输出(Controller、Method、请求参数)
		// false:控制台没有输出
		me.setDevMode(true);
		
		// 设置下载和上传路径  注意绝对路径和相对路径
		me.setBaseDownloadPath(null);
		me.setBaseUploadPath(null);
		
		// 设置JFinal编码格式
		me.setEncoding("uft-8");
		
		// 设置出现404错误时的客户端返回的视图
		me.setError404View(null);
		// 与上述功能相似,可以设置不同的返回码对应的返回视图
		me.setErrorView(404, errorView);
		
		// 设置FreeMarker模板刷新时延
		me.setFreeMarkerTemplateUpdateDelay(0);
		
		// 设置upload的文件大小,如100M
		me.setMaxPostSize(1024*1024*100);
		
		// 设置路由参数的分隔符,默认为'-'
		me.setUrlParaSeparator("-");
		
		// 设置视图类型 默认为Free_Marker
		me.setViewType(ViewType.FREE_MARKER);

		
	}

setError404View()方法 & setErrorView()方法

WebRoot下创建ERROR404.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
ERROR 404...<br>
Please contact us...
</body>
</html>
// 设置出现404错误时的客户端返回的视图
me.setError404View("/ERROR404.html");
  • 正常情况:
    在这里插入图片描述
  • 路由不存在的情况:404报错
    在这里插入图片描述

如下语句也能实现上述功能:

// 与上述功能相似,可以设置不同的返回码对应的返回视图
me.setErrorView(404, "/ERROR404.html");

3、configRoute() 配置访问路由

配置访问路由

将”/hello”映射到 HelloController 这个控制器 , 通 过 配 置 ,
http://localhost/hello 将 访 问 HelloController.index() 方法
http://localhost/hello/methodName 将访问到 HelloController.methodName()方法

	public void configRoute(Routes me) {
		/**
		 * controllerPath: path of controller
		 * controllerClass: Controller Class
		 * viewPath: View path for this Controller
		 */
		// 该方法一共三个参数,分别指出controller的路径、controller类、视图路径
		// me.add(controllerPath, controllerClass, viewPath);

		me.add("/hello", HelloController.class);
		me.add("/", IndexController.class);
	}

在这里插入图片描述

  • 第一个参数 controllerKey : 访问某个 Controller 所需要的一个字符串,该字符串唯一对应一个 Controller,controllerKey 仅能定位到 Controller。
  • 第二个参数controllerClass : 该
    controllerKey 所对应到的 Controller。
  • 第三个参数 viewPath : 该 Controller 返回的视图的相对路径。当 viewPath 未指定时默认值为controllerKey。

JFinal 访问一个确切的 Action需要使用 controllerKey与 method 来精确定位,当 method 省略时默认值为 index()

urlPara 是为了能在 url 中携带参数值,urlPara 可以在一次请求中同时携带多个值,JFinal 默认使用减号“-”来分隔多个值(可通过 constants. setUrlParaSeparator(String)设置分隔符),在 Controller 中可以通过 getPara(int index)分别取出这些值。

public class HelloController extends Controller {
	public void index() {
		renderText("Index() function: \nHello JFinal World.");
	}
	
	public void myindex() {
		renderText("myindex() function: \nHello");
	}
}

  • 未指定method时,默认调用Index()方法:
    在这里插入图片描述
    在这里插入图片描述

  • 指定方法后,调用指定的方法:
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


4、其他

public class IndexController extends Controller {
	public void index() {
		Data data = new Data();
		data.setName("Alice");
		data.setAge(18);
		
		renderJson(data);
	}
	
	public void myindex() {
		render("/hello.html");
	}
}

可以发送html页面
需要添加freemarker-2.3.20.jar

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值