JFinal 学习笔记 -- 映射路径

现在来探讨下 JFinal 的映射路径问题

1、新建工程:如何新建工程请查看我的上篇博客

新建好的工程目录如下: 

JFinal 学习笔记 -- 映射路径_第1张图片
 

 工程中的 MyJFinalConfig 代码如下:  

package com.xiaoye.study.jfinal;

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.render.ViewType;
import com.xiaoye.study.jfinal.controller.TestController;

public class MyJFinalConfig extends JFinalConfig {

	/**
	 * 设置一些常量
	 */
	@Override
	public void configConstant(Constants me) {
		me.setDevMode(true); // 设置开发模式
		
		/**
		 * 设置视图类型为 JSp
		 * 如果不设置,将不能使用jsp文件作为视图文件
		 */
		me.setViewType(ViewType.JSP);
	}

	@Override
	public void configRoute(Routes me) {
		
	}

	@Override
	public void configPlugin(Plugins me) {
		
	}

	@Override
	public void configInterceptor(Interceptors me) {
		
	}

	@Override
	public void configHandler(Handlers me) {
		
	}
}

 工程中的 TestController 代码如下:

package com.xiaoye.study.jfinal.controller;

import com.jfinal.core.Controller;

public class TestController extends Controller {
	
	public void index() {
		
	}
}

  

2、启动 Debug 模式

3、测试:这里主要通过 MyJFinalConfig 的 configRoute 方法设置访问路由;通过 TestController 的 index 方法设置视图。

访问地址:http://localhost

configRoute 设置访问路由 index 设置视图 结果(index.jsp 位置)
me.add("/", TestController.class);

render("index.jsp"); || 

render("/index.jsp");

WebContent\index.jsp
me.add("/", TestController.class);

render("jsp/index.jsp"); || 

render("/jsp/index.jsp");

WebContent\jsp\index.jsp
me.add("/", TestController.class);

render("jsp/jsp/index.jsp"); || 

render("/jsp/jsp/index.jsp");

WebContent\jsp\jsp\index.jsp
me.add("/", TestController.class);

render("/WEB-INF/jsp/index.jsp"); || 

render("WEB-INF/jsp/index.jsp");

WebContent\WEB-INF\jsp\index.jsp

访问地址:http://localhost

configRoute 设置访问路由 index 设置视图 结果(index.jsp 位置)
me.add("/", TestController.class, "jsp"); render("index.jsp"); WebContent\jsp\index.jsp
me.add("/", TestController.class, "jsp"); render("/index.jsp"); WebContent\index.jsp
me.add("/", TestController.class, "jsp"); 其他路径结果类似  

说明:当设置访问路由时,第三个参数代表视图路径。如果在视图跳转时,在要跳转的视图(index.jsp)前加了“/”,则访问路由中设置的第三个参数与没有设置一样,视图路径为:WebContent + “要跳转的视图”;

如果在要跳转的视图(index.jsp)前没有加“/”,则寻找的视图的路径为 “WebContent\” + 第三个参数 + “要跳转的视图”。 

注:第三个参数可以为“XXX”形式也可以为“/XXX” 形式,效果一样。

 访问网址:http://localhost/test

configRoute 设置访问路由 index 设置视图 结果(index.jsp 位置)
me.add("/test", TestController.class); render("index.jsp"); 找不到路径
me.add("/test", TestController.class); render("/index.jsp"); WebContent\index.jsp
me.add("/test", TestController.class); 前面加了“/”的都能正确找到路径  

说明:

1、访问路由仅为“/”时,视图设置时,视图路径前有“/”无“/”效果一样

2、访问路由仅为“/XXX”时,视图设置时,视图路径前必须加上有“/”,否则找不到路径

3、注:当访问路由为“/XXX”形式时,可以省略“/”不写,即仅写“test”也可以,框架会自动补上“/”。

4、访问路由设置第三参数,如果在视图跳转时,在要跳转的视图(index.jsp)前加了“/”,则访问路由中设置的第三个参数与没有设置一样,视图路径为:WebContent + “要跳转的视图”

如果在要跳转的视图(index.jsp)前没有加“/”,则寻找的视图的路径为 “WebContent\” + 第三个参数 + “要跳转的视图”。

官方文档说明:
JFinal 学习笔记 -- 映射路径_第2张图片
 

你可能感兴趣的:(jFinal)