OSCHina技术导向:Java轻量web开发框架——JFinal

JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)

JFinal有如下主要特点:

  • MVC架构,设计精巧,使用简单
  • 遵循COC原则,零配置,无xml
  • 独创Db + Record模式,灵活便利
  • ActiveRecord支持,使数据库开发极致快速
  • 自动加载修改后的java文件,开发过程中无需重启web server
  • AOP支持,拦截器配置灵活,功能强大
  • Plugin体系结构,扩展性强
  • 多视图支持,支持FreeMarker、JSP、Velocity
  • 强大的Validator后端校验功能
  • 功能齐全,拥有struts2的绝大部分功能
  • 体积小仅218K,且无第三方依赖

以下是JFinal实现Blog管理的示例:

1:控制器(支持FreeMarker、JSP、Velocity、JSON等等以及自定义视图渲染)

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

@Before(BlogInterceptor.class)

public class BlogController extends Controller {

    public void index() {

        setAttr("blogList", Blog.me.find("select * from blog"));

    }

    public void add() {

    }

    

    @Before(BlogValidator.class)

    public void save() {

        getModel(Blog.class).save();

    }

    

    public void edit() {

        setAttr("blog", Blog.me.findById(getParaToInt()));

    }

    

    @Before(BlogValidator.class)

    public void update() {

        getModel(Blog.class).update();

    }

    

    public void delete() {

        Blog.me.deleteById(getParaToInt());

    }

}

2:Model(无xml、无annotation、无attribute、无getter、无setter、new Blog()这行代码也不是必须)

?


1

2

3

public class Blog extends Model {

    public static final Blog me = new Blog();

}

3:Validator(API引导式校验,比xml校验方便N倍,有代码检查不易出错)

?


1

2

3

4

5

6

7

8

9

10

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);

    }

}

 4:拦截器(在此demo中仅为示例,本demo不需要此拦截器)

?


1

2

3

4

5

6

7

public class BlogInterceptor implements Interceptor {

    public void intercept(ActionInvocation ai) {

        System.out.println("Before invoking " + ai.getActionKey());

        ai.invoke();

        System.out.println("After invoking " + ai.getActionKey());

    }

}

JFinal官方微信欢迎您的加入:

JFinal/JFinal

star 357fork 288

JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥...

issues:

最近提交:

下载zipmaster分支 代码最近更新:2014-05-23

JFinal最新更新资讯,共17条  (投递新闻查看所有»)

时间: 2024-12-29 05:52:10

OSCHina技术导向:Java轻量web开发框架——JFinal的相关文章

win8.1 cygwin编译java轻量虚拟机avian

1.背景 昨天在网上看到别人用aauto写本地小程序写的很爽,我觉得如果java的jre能小一点,凭借java庞大的第三方类库写小工具也还算不错的.本人就经常用eclipse+一些commons包写些小工具软件.不过可惜的是只能自己用,对于没装java环境的人来说就麻烦了.所以就去网上找到了一个轻量级java虚拟机avian.但是在编译和安装过程中遇到了很多困难,特此记录. 2.开始 废话少说,先说重点.其实在这个软件的gihub首页以及清晰的讲述了安装教程,无奈这是英文的,而且主要是自己没有过

OSCHina技术导向:web内容管理系统Magnolia

Magnolia简介: Magnolia CMS是一家瑞士公司自2003年起发布的一个基于Java的开源内容管理系统.它适合且已被使用在以下领域:电子商务(例如:COOP.Migros.Rossmann).银行(例如:巴克莱银行.苏格兰银行.ING.American Express).媒体娱乐(例如:阿拉伯电台.MBC.Foxtel).政府(例如:美国NAVY.美国运输安全管理局.德国慕尼黑水电).旅游(例如:Thomas Cook.Travel.com.au).航空航天(例如:空客集团.Vir

OSCHina技术导向:Java模板引擎velocity

OSChina 采用 velocity 作为页面模板 Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码.Velocity将java代码从web页面中分离出来

Python轻量Web框架Flask使用

http://blog.csdn.net/jacman/article/details/49098819 目录(?)[+] Flask安装 Python开发工具EclipsePyDev准备 Flask项目框架搭建 MVC模式实例开发 登录实例 Python语言近些年越来越火,其特点是开发迅速,语法简单,可移植等.本人就Python3基础语法写了Demo:https://github.com/tangthis/python3_demo,可以当作基础教程和手册查阅. Python Web开发框架常用

OSCHina技术导向:Java WEB企业门户平台Liferay

Liferay 是一个完整的门户解决方案,基于J2EE的应用,使用了EJB以及JMS等技术,前台界面部分使用Struts MVC 框架,基于XML的portlet配置文件可以自由地动态扩展,使用了Web服务来支持一些远程信息的获取,使用 Lucene实现全文检索功能. 主要特点如下:1.提供单一登陆接口,多认证模式(LDAP或SQL);2.管理员能通过用户界面轻松管理用户,组,角色:3.用户能可以根据需要定制个性化的门户布局;4.能够在主流的J2EE应用服务器上运行:5.支持主流的数据库:6.使

OSCHina技术导向:Java电子商务平台OFBiz

OFBiz 是开放的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级.跨平台.跨数据库.跨应用服务器的多层.分布式电子商务类WEB应用系统的框架. OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具.包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等. OFBiz最新更新资讯,共12条  (投递新闻,查看所有») Apache OFBiz 12.04.05/11.04.06 发布12

OSCHina技术导向:Java开源QQ工具iQQ

iQQ 使用Java语言跨平台开发,基于腾讯WebQQ 3.0网络协议.可以使用于Java所支持的各种平台上运行.作者基于Linux(Ubuntu 12.04)系统,使用IDE NetBeans开发,以源代码公开方式贡献给各个程序爱好者,希望可以一起开发此项目. iQQ使用Java语言开发,运行时需要安装Java运行环境. 如果系统已经安装好Java运行时,直接点击run.sh方可运行iQQ或者iQQ.jar右键使用Java Runtime进行运行 Java运行时安装方法: 1.Debian,

初识python轻量web框架flask

1.使用pip安装Python包 大多数Python包都使用pip实用工具安装,使用pyvenv创建的虚拟环境会自动安装pip. 1.使用pip安装Flask(其它Python包同理) pip install flask 2.一个简单的Demo from flask import Flask from flask import abort from flask import redirect app = Flask(__name__) @app.route('/') def index(): r

OSCHina技术导向:开源企业ERP系统Opentaps

opentaps Open Source ERP + CRM 基于 Apache OFBiz (The Open For Business Project ) 构建, 是一款设计良好, 逐渐流行起来的 CRM 系统.该项目难得之处是提供很多中文的文档. 主要特性:1.提供一个全面的套件,让您可以360度掌握你的业务情况.从客户到订单到库存再到财务. opentaps是一套完整的软件运行在一个拥有700多个表的统一数据模型之上. 2.支持大部分主流关系型数据包括MySQL. PostgreSQL.