博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用JFinal/Jsmart框架开发体验(一)
阅读量:6637 次
发布时间:2019-06-25

本文共 3385 字,大约阅读时间需要 11 分钟。

写在最前,关于学习框架的一些个人体会

通过开发一个小例子,完整的体现了Jsmart的各种主要特性,MVC架构,遵循COC配置原则,AOP和Plugin等。

一步一步学习和体会JFinal/Jsmart这款框架。

  • 第一步:创建数据库表

数据表结构如图1-1

  • 第二步:创建Web工程,参见文章;

  • 第三步:创建工程目录结构如图3-1

  • 关于工程目录结构图3-1说明:

  1. com.broncho.jsmart.common工程的公共部分,存放配置文件和公共类

  2. com.broncho.jsmart.controller 工程的Controller包,控制部分,属于MVC中的C部分;

  3. com.broncho.jsmart.interceptor 放置拦截器类;

  4. com.broncho.jsmart.model 工程中的Model,属于MVC中的M部分;

  5. com.broncho.jsmart.service 业务处理类;

  6. com.broncho.jsmart.validator 放置校验器类;

  7. mapping-font.xml Controller中的Action转发依据,配置文件

  8. WebRoot下error放在错误页面;

  9. WebRoot下rs放置资源文件;

  10. WebRoot下upload放置上传文件;

  11. WebRoot下users放置Users模块的视图文件

  • 工作内容:

  1. 配置信息;

  2. 用户登录;

  3. 查看所有用户;

  4. 删除用户;

  5. 上传文件;

  6. 下载文件

  • 具体实现

    1.配置文件:

    ◇ JdemoConfig.Properties,配置文件放置到common包下。

jdbcUrl=jdbc:mysql://localhost:3306/bbs?characterEncoding=utf-8&zeroDateTimeconvertToNulluser=rootpassword=xxxdriverClass=com.mysql.jdbc.Driver#开发模式devMode=true#是否显示SQLshowSql=true< /pre>

◇配置类,继承JsmartConfig类,重写相应的方法,其中关键的3个方法如下代码所示。

package com.broncho.jsmart.common;import com.broncho.jsmart.interceptor.GlobalInterceptor;import com.broncho.jsmart.model.users.Users;import com.jsmart.config.Constants;import com.jsmart.config.Handlers;import com.jsmart.config.Interceptors;import com.jsmart.config.JSmartConfig;import com.jsmart.config.Plugins;import com.jsmart.config.Routes;import com.jsmart.ext.plugin.sqlinxml.SqlInXmlPlugin;import com.jsmart.ext.route.RouteCfg;import com.jsmart.plugin.activerecord.ActiveRecordPlugin;import com.jsmart.plugin.c3p0.C3p0Plugin;import com.jsmart.render.ViewType;/** * 使用Jsmart框架,配置全局信息 * * @author Broncho * @time 2013年7月17日 09:16:38 */public class JdemoConfig extends JSmartConfig {    @Override    public void configConstant(Constants me) {        loadPropertyFile("classes/com/broncho/jsmart/common/jdemoConfig.Properties");        me.setViewType(ViewType.JSP);        me.setDevMode(getPropertyToBoolean("devMode"));        me.setEncoding("UTF-8");        me.setError404View("error/error404.jsp");        me.setError404View("error/error500.jsp");    }    @Override    public void configRoute(Routes me) {        /**         * 前台路由转发设置         */        me.add(new RouteCfg("mapping-front.xml"));    }    @Override    public void configPlugin(Plugins me) {        /**         * 配置数据源和数据库连接池插件         */        C3p0Plugin c3p0 = new C3p0Plugin(getProperty("jdbcUrl"),                getProperty("user"), getProperty("password"),                getProperty("driverClass"));        me.add(c3p0);        /**         * 配置数据库表映射插件         */        ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0);        arp.setShowSql(getPropertyToBoolean("showSql"));        me.add(arp);    }    @Override    public void configInterceptor(Interceptors me) {        me.add(new GlobalInterceptor());    }    @Override    public void configHandler(Handlers me) {        // TODO Auto-generated method stub    }}

1.路由转发,使用XML配置文件进行信息设置,配置信息如下代码

2.插件配置,使用了C3P0数据库连接池,因此要依赖第三方jar包,下图是工程所依赖的jar截图:

   红色线框标注是使用C3P0数据库连接池插件的依赖包

3.路由转发是根据2中的配置信息来进行的。

  例如: 该链接是默认访问地址http://localhost:8080/Jdemo/index.jsp

        访问Action的地址:http://localhost:8080/Jdemo/users/loginUsers

 其中users是1中配置文件中ctlkey的值,loginUsers是ctlclass对于的Controller类的方法。

4.在项目中使用绝对路径。


   JFinal的页面控制器有Controller类来完成,其中转发的工作则是路由转发的配置文件,该文件是整个控制流程的核心部分。

   JFinal还可以使用注解的方式来进行路由转发路径的设置,这将使用JFinal的插件机制可以完成,在Jsmart中则使用了这一方式。

   整个使用JFinal框架进行Web开发,将侧重Controller的路由转发,数据访问层可以使用ibatis等ORM框架,视图模版引擎FreeMarker,jsp, Rythm,beetl.

转载地址:http://dpivo.baihongyu.com/

你可能感兴趣的文章
大众美团服务链监控CAT
查看>>
Android点滴(9) -- Android 不显示标题栏和全屏的设置方法
查看>>
bupt summer training for 16 #3 ——构造
查看>>
spring boot+maven+jsp 快速搭建web项目(1) 构建spring项目
查看>>
ELK平台搭建及日志监控
查看>>
CodeForces 343B Alternating Current :两根绳子上下绕在一起,问拉住上下绳子能不能分开:思维+栈...
查看>>
SQL Server 2008压缩数据库日志文件
查看>>
windows10 正式使用
查看>>
2018年8月
查看>>
java时间格式转化(毫秒 to 00:00)
查看>>
微信支付完成事件报警
查看>>
HDU - 5884 - Sort
查看>>
Windows下Redis的安装使用 以及 phpRedisAdmin安装
查看>>
Oracle 网络监听配置管理
查看>>
根据CSV找出USBGroup中计算机对应的用户
查看>>
4.2 SQL Server数据库物理结构
查看>>
bzoj 4403 序列统计——转化成组合数的思路
查看>>
POJ1191棋盘分割
查看>>
后台进程
查看>>
php 对数组按某个字段进行排序
查看>>