关于JFinal的资料在此就不一一介绍了,可以详见官方说明。因对敏捷开发感兴趣,又有RailS有点了解,故很急切学习JFinal。此文仅仅作为自己学习、使用的一点记录,菜鸟一个!帖子里记录的问题的解决办法也会详细说明。
根据官方文档下载资料,按照步骤一步步搭建环境,敲入代码,按照说明在 Debug 模式下运行第一个“ Hell World! ”,但是提示:80端口已被占用。到网上搜索了一下,原来可以在启动的时候设置启动参数。
按照下面帖子里的说明启动成功。配置参数:WebRoot 8089 / 5 [注意每个参数间都有空格]。
解决端口被占用的问题:http://www.oschina.net/question/812987_71972
实际动手实现了 Hello World 这个小项目,发现的确很简单。开发文档也很少,半天就看完了,不过吸收的倒不多,只是大概看了下,毕竟技术性的东西还是亲自动手实践才能深有体会!
通过 http://127.0.01/hello 可以正常访问到显示“hello world”的界面(没有用8089端口了,因为我找到80端口被占用的原因是系统自动开启了Apache,关了就解决了!)。
感觉很神奇是吧,我没做多少事情呀,一个页面居然就呈现出来了!看了看代码,发现了如下:
//配置路由
@Override
public void configRoute(Routes routes) {
routes.add("/hello",HelloController.class);
}
这难道就是配置路由吗?我试着在Controller里加了一个 方法【public void say(){......} 】,也在上面的方法里注册,发现访问: http://127.0.01/hello/say 成功,而访问: http://127.0.01/say 却和访问 http://127.0.01/hello 效果一样。看了下官方文档,Routes类里的2个方法: public Routes add(String ,Class,String ) , public Routes add(String ,Class )
第一个参数是指访问Controller所需的一个字符串,该字符串唯一对应一个Controller;第二个参数就是对应的Controller,第三个参数是该Controller返回的视图的相对路径。
收获: 对于一个Controller,通过index()方法可以设置代表此Controller的controllerKey(相当于别名吧),对于Controller里的其他方法(仅指public void xxx()形式),就需要通过controllerKey/methodName来访问了!(貌似这样的思想的官方文档里有吧。。。)
对于 public Routes add(String ,Class,String )方法里的第三个参数,暂时还没有发现用法。但是搜索资料找到了关于JFinal路由的一些参考资料:
1.路由配置实例:http://my.oschina.net/jfinal/blog/50358
2.自动扫描路由:http://my.oschina.net/mousai/blog/81991
对于第2个 自动扫描路由,应该是第三方的应用吧!但是帖子前面的话可以了解到
JFinal有两种方式对路径进行配置:1.通过route.add(String ControlKey,Class<?> clz) 2.另一种可以把路径信息的配置拿到单独的一个类中,该类必须继承Routes,然后再通过route.add(Routes rt)方式配置路径映射。