现在来探讨下 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\” + 第三个参数 + “要跳转的视图”。
官方文档说明:
相关推荐
{2.11}\ttfamily final}{63}{section.2.11} {2.12}\ttfamily abstract}{63}{section.2.12} {2.13}\ttfamily interface}{64}{section.2.13} {2.14}JavaBean规范}{66}{section.2.14} {3}常用类}{67}{chapter.3} ...
### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...
一个实体必须有一个无参构造函数,并且其类和字段不应声明为`final`,以确保实例化和序列化的需求。实体的状态有三种:瞬时态(Transient)、持久态(Persistent)和游离态(Detached),这些状态影响着实体与数据库...
《我的Pro Spring 学习笔记 之一:Say Hello World in Spring Way》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用中占据主导地位。这篇学习笔记将引导我们踏入Spring的世界,通过一个简单的“Hello ...
### C# 学习笔记知识点总结 #### 一、结构与类的区别 1. **存储方式**:结构是值类型,直接存储在栈中,无需堆分配;而类是引用类型,存储在托管堆上,栈中仅保存指向类实例的引用。 2. **变量包含内容**:结构变量...
Java编程语言是软件开发领域广泛使用的工具,尤其对于初学者来说,它提供了良好的学习路径。这份"java程序员笔记(day1-24)2020.zip"文件包含了从基础到进阶的Java学习资料,适合那些希望在IT行业开启职业生涯的新手...
### ibatis 学习小结笔记 #### 一、ibatis 概述 ibatis 是一个基于 Java 的持久层框架,它提供了一种简便的方式来处理关系型数据库与 Java 对象之间的映射(O/R Mapping)。ibatis 在设计上强调的是 SQL 语句的...
### MyBatis个人笔记知识点详解 #### 一、MyBatis基本概念与使用技巧 **1.1 SQL语句中的#与$的区别** 在MyBatis中,#和$符号通常用于参数化SQL语句中的变量。这两种符号的主要区别在于处理方式的不同: - **#号*...