最近准备开始写项目之前,有一位大佬,问我们项目准备用什么框架,我说SSM(Spring、Spring MVC、Mybatis)啊,最近不是市面上很火的嘛,虽然不是很会,但是边做边学嘛,出去好找工作;然后他告诉我说:如果你们只是准备给别人开发一个项目的话,可以尝试用一下JFinal,这个框架开发起来特别快,该有的功能基本上也都有,有时间可以去看看,于是我就来记录一下JFinal的学习历程。
首先,去了JFinal的论坛看了下,里面提供了小Demo、开发手册、框架源码;反正我是都下载下来了,一边看着文档,一边对照着看一下相应的Demo,简单的入门还是比较容易的,我讲几个需要注意的点:
1. 文档的顺序可能安排地不是那么恰当,大家可以搜索关键字,或者从目录里找自己最需要的那一块;
2. 如果你是在idea下的话,推荐使用文档里说的Jetty进行开发调试,因为那样可能比较方便,我因为习惯而使用的tomcat,结果在调试上感觉各种不顺手;
3. 关于根据数据库表自动生成Model类写在了第5章的最后一节,想看的可以提前去看,我当时居然照着模板手敲了一个Model,扎心;
遇到的问题有很多,记录一下最有印象的几个:
1. 在2.3节configRute 里说到使用@ActionKey("")可以打破原有的规则进行路由,然后我就尝试了一下,发现注解里面的内容填的就是绝对路径,并不是相对之前的controllerKey;然后就是跳转的时候render("")函数,我传了一个jsp,结果它给我把jsp上面的<%@ %> 都给输出出来了,查了一些资料才发现,要针对你的页面类型调用相应的函数如:jsp就对应renderJsp("");
2. 在用ActionKey的时候我想弄成xxx.do的形式,然后试了一下,发现请求404,然后又查资料 ,说默认的路由处理是不处理带 "."的路径的,要弄的话就得自己手写一个Handler来进行处理,JFinal创始人还给出了一个Demo:
public class MyHandler extends Handle {
public void handle(String target,
HttpServletRequest request,
HttpServletResponse response,
boolean[] isHandled)
if (target.endWith(".do"))
target = target.substring(0, target.length() - 3)
nextHandle.handle(target, request, response, isHandled)
}
}