在接受一个新的框架之前我们以往就是从官网上下载demo到本地部署运行查看手册,这么做有两种好处:1、验证demo本身是否有异常;2、实现的效果是否达到自己想要的;然后再根据官网提供的手册查阅,这样才能更深刻的学习和了解新框架特性和欣赏她的优美,从这个学习曲线来说是一个最明智的学习方法。
为什么这么说呢,接下来我就偷偷告诉你一个真实的例子,当年走开发之路,由于自己是半中起家的,也没有什么师傅带领上路,那些年出来是因为穷,也没有去过什么培训机构培训学习,一蒙就干,走了不少弯路子,比如说在学习什么框架或要实现什么功能,上度娘找,拍拍的一堆出来,也不知道那个是对的,找到最后高兴的连运行都没有运行过,自己又在那里卡卡的上车学啊学,弄得自己费了很大的力气学,结果demo也没有运行起来或demo起来后所实现的效果不是自己想要的那种方式,demo中是能实现的,实际自己想要的是两码事或者是一个说东西一个说西两个都不在一边上,最后弄得自己遍体鳞伤。
这就是人们常常说的混编军和正规军一个意思,混编军就是咱们说的东捡一点东西匆匆就上车啦,只单纯的想混个饭吃吃,碗都没端稳,结果饭都没得吃,正规军就是有套系统的套路给你指引,站站在巨的肩膀上带你飞的那种蓝二代。
言归正算,正式进入主题,大家在使用JFinal开发项目有没有遇到个问题,配置好路由或指定好了UI部署运行,本想兴奋的打开浏览器访问,结果展现在自己面前是的你访问的地址不存在,报404错误,然后在想为什么出现找不到呢,我不是配置好的了吗?找啊找啊,怎么也找不着,开始怀疑是不是这个框架不行,连这个最简单的地址都显示不出来太二了。
真理告诉你不是她太二了,而是自己没有理解透,比如说在YourConfig中注册路由访问规则是这样子的:
@Orverder
public void configRoute(Routes me) {
me.add("/admin/user", IndexController.class,"_back/admin/user");
}
"/admin/user"这个是JFinal映射的路由也就是我们说的访问地址;IndexController.class这个就是我们要注册的控制类;"_back/admin/user"这个是我们User模块UI存放的真实目录。
接下来就又人问题什么是路由,我引用波总的回答“路由配置是指将 http 请求的 url 映射到 action 的配置,上面的例子,是将路由配置从 JFinalConfig 中脱离出来的例子,这样使得 JFinalConfig 中更清爽 :)”这你总能明白了吧,哈哈。
来个完整理的例子是这样子的:
public UserController extends Controller {
public void index(){
render("list.html");
}
public void add() {
String method = getRequest().getMethod();
if ("GET".equals(method)) {
render("add.html");
} else if ("POST".equals(method)) {
redirect("/admin/user");
}
}
}
index()这个方法是JFinal默认定义命中的方法,她的界面地址直接就是:render("list.html")到这里有人就问为什么不是这样子写呢?render("_back/admin/user/list.hml"),是这样子的,因为在之前我们不是在注册路由时不是已经配置UserController路由。
接下来add()这个方法中有用到重定向redirect()这个方法,看看他里面的地址配置,是redirect("/admin/user"),又有人问咋是这样子配置的呢,直接redirect("/")不就得了嘛,我说句你试试就知道为什么不这么配置了,redirect既然是重定向意味着路由地址也要重新指定下要不然会给你意想不到结果,如果还是在纠结这个地址我偷偷的告诉你,你可以@私会波总。
最后来两句使用JFinal开发项目内心真实的话,用过JFinal你就知道她的好、她的简单、她的优美、她的极速,是国人的骄傲值得大家拥有,非常敬佩波总带给我们的精品,在这给波总100个赞,同时也希望我们广大的JFinal粉们奉献你们的一份力量,你们的力量是JFinal发展的动力,力争JFinal遍地开花结果,在这先为广大JFinal粉们喝彩。