JFinal 1.1.2 发布,JAVA 极速WEB + ORM 框架
jopen 12年前
<p><a href="/misc/goto?guid=4958343373553903133" target="_blank">JFinal </a>是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、 python等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 ;)</p> <h2>JFinal有如下主要特点:</h2> <ul> <li>MVC架构,设计精巧,使用简单</li> <li>遵循COC原则,零配置,无xml </li> <li>ActiveRecord支持,使数据库开发极致快速</li> <li>自动加载修改后的java文件,开发过程中无需重启web server </li> <li>AOP支持,拦截器配置灵活,功能强大</li> <li>Plugin体系结构,扩展性强</li> <li>多视图支持,支持FreeMarker、JSP、Velocity </li> <li>强大的Validator后端校验功能 </li> <li>功能齐全,拥有struts2的绝大部分功能 </li> <li>体积小仅198K,且无第三方依赖</li> </ul> <p>以下是JFinal实现Blog管理的代码: </p> <pre class="brush:java; toolbar: true; auto-links: false;">/** * BlogController */ public class BlogController extends Controller { public void index() { setAttr("blogList", Blog.dao.find("select * from blog order by id asc")); } public void add() { } @Before(BlogValidator.class) public void save() { getModel(Blog.class).save(); } public void edit() { setAttr("blog", Blog.dao.findById(getParaToInt())); } @Before(BlogValidator.class) public void update() { getModel(Blog.class).update(); } public void delete() { Blog.dao.deleteById(getParaToInt()); } } /** * Blog model. */ public class Blog extends Model<Blog> { public static final Blog dao = new Blog(); } /** * BlogValidator. */ public class BlogValidator extends Validator { protected void validate(Controller controller) { validateRequiredString("blog.title", "titleMsg", "请输入Blog标题!"); validateRequiredString("blog.content", "contentMsg", "请输入Blog内容!"); } protected void handleError(Controller controller) { controller.keepModel(Blog.class); } }</pre> <p></p> <p><b>JFinal </b>1.1.2 版比较重要的变化是重新设计了 json 模块、集成了JDBC连接池、监控组件 Druid。全新设计的 json 模块代码量压缩至极致,类文件由原来的四个减至一个,并且支持多级嵌套转换。除此之外 JFinal 1.1.2 其它变化如下:</p> <p>Version 1.1.2:</p> <ul> <li>Controller 添加 getParaToLong(String) 系列方法</li> <li>JspRender.handePage(...) 增加对 list的处理</li> <li>Model 所有 return this 的方法返回值强制转化泛型</li> <li>改进SessionInViewInterceptor,采用 JFinalSesion以便支持 get(String)以外的功能</li> <li>改进 Controller 的 getParaToInt 系列与 getParaToLong 系列方法,使字母"N"与"n"代表负号,以便在 urlParaSeparator 为 "-" 时支持负数, http://abc.com/search/2-N8-5 请求的 getParaToInt(1) 值为 -8</li> <li>将默认 urlParaSeparator 由 "_" 改成了 "-", 有利于 seo, 使用 "_" 值的原有项目可以通过 constants.urlParaSeparator("_") 来升级 jfinal</li> <li>Controller.getParas 被 Deprecated, 启用与 getParaNames 相对应的 getParaValues</li> <li>FreeMarkerRender中的 config.setNumberFormat("#") 改为了 config.setNumberFormat("#0.#####")</li> <li>去掉了 JFinal.initOreillyCos() 中的自动创建上传目录相关代码</li> <li>去掉了 ActiveRecordPlugin中的 addTableMapping(...) 方法</li> <li>重新设计 json 模块</li> <li>添加 DruidPlugin (<a href="http://www.open-open.com/lib/view/open1345189962662.html" target="_blank">Druid</a>)</li> </ul>