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>