本文共 3385 字,大约阅读时间需要 11 分钟。
写在最前,关于学习框架的一些个人体会
通过开发一个小例子,完整的体现了Jsmart的各种主要特性,MVC架构,遵循COC配置原则,AOP和Plugin等。
一步一步学习和体会JFinal/Jsmart这款框架。
第一步:创建数据库表
数据表结构如图1-1
第二步:创建Web工程,参见文章;
第三步:创建工程目录结构如图3-1
关于工程目录结构图3-1说明:
com.broncho.jsmart.common工程的公共部分,存放配置文件和公共类
com.broncho.jsmart.controller 工程的Controller包,控制部分,属于MVC中的C部分;
com.broncho.jsmart.interceptor 放置拦截器类;
com.broncho.jsmart.model 工程中的Model,属于MVC中的M部分;
com.broncho.jsmart.service 业务处理类;
com.broncho.jsmart.validator 放置校验器类;
mapping-font.xml Controller中的Action转发依据,配置文件
WebRoot下error放在错误页面;
WebRoot下rs放置资源文件;
WebRoot下upload放置上传文件;
WebRoot下users放置Users模块的视图文件
工作内容:
配置信息;
用户登录;
查看所有用户;
删除用户;
上传文件;
下载文件
具体实现
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://tysmx.baihongyu.com/