首先这是一个dynamic web project。其src文件夹下包含的package如下:
包内包含的类如下所示:
一、Controller层(包括com.demo.blog.BlogController和com.demo.index.IndexController)
这里只介绍BlogController的部分内容,如下。
其中,com.demo.blog包内包含的java类有BlogController(JFianl的控制器类),BlogValidator(BlogController的验证器)和BlogInterceptor(BlogController的拦截器)。
先介绍BlogController类,截部分图如下:
其中,index()方法通过调用service层的方法paginate()获取到了Page<Blog>对象,然后通过setAttr()方法将Page<Blog>以blogPage的属性名放置于HttpServletRequest中。再通过render("blog.html")来加载blog.html页面;
再介绍下该类中的add()方法。其方法为空。则默认在用户请求该方法对应的action时,add()内默认render("add.html")。
二、Dao层+Service层(包括com.demo.common.model.Blog和com.demo.common.model.base.BaseBlog)
下面我们看看com.demo.common.model包和com.demo.common.model.base包中个个类有啥作用。
1、_JFinalDemoGenerator(POJO自动生成工具类)
这个类是用来自动生成pojo类的。
2、_MappingKit(关联数据库表与pojo类工具类)
3、Blog为通过_JFinalDemoGenerator自动生成的Service类,继承_JFinalDemoGenerator自动生成的POJO类(BaseBlog<Blog>)。
三、JFinal的核心控制类(com.demo.common.DemoConfig)
这个类继承了JFinalConfig抽象类,重写了configConstant()(配置系统常量), configRoute()(配置页面跳转), configPlugin()(配置系统使用插件), configInterceptor()(配置拦截器), configHandler()(配置处理器)这五个方法。
通过这五个方法,将上述的Controller层,Service层和Dao层整合起来。这也是JFinal框架的巧妙和强大之处。
---如有错误之处,请多见谅