史上最快Java Web framework JFinal横空出世
来源:互联网 发布:网络搭建与应用 编辑:程序博客网 时间:2024/05/16 16:58
JFinal 是基于Java 语言的 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。
JFinal有如下主要特点:
l MVC架构,设计精巧,使用方便简单
l 遵循COC原则,零配置,无xml
l ActiveRecord支持,使数据库开发极致快速方便
l 自动加载修改后的java文件,开发过程中无需重启web server
l AOP支持,拦截器配置灵活,使用简单
l Plugin体系结构,扩展方便
l 多视图支持,支持FreeMarker、JSP、Velocity
l 强大的Validator后端校验功能
l 功能齐全,拥有struts2的绝大部分功能
l 体积小仅150K,且无第三方依赖
项目首页:http://code.google.com/p/jfinal
以下是一个Blog管理的示例程序:
1:控制器(支持FreeMarker、JSP、Velocity、Json等等以及自定义视图渲染)
01
@Before
(BlogInterceptor.
class
)
02
public
class
BlogController
extends
Controller {
03
public
void
index() {
04
list();
05
}
06
07
public
void
list() {
08
setAttr(
"blogList"
, Blog.dao.find(
"select * from blog order by id asc"
));
09
render(
"blog.html"
);
10
}
11
12
public
void
add() {
13
render(
"add.html"
);
14
}
15
16
@Before
(BlogValidator.
class
)
17
public
void
save() {
18
getModel(Blog.
class
).save();
19
list();
20
}
21
22
public
void
edit() {
23
setAttr(
"blog"
, Blog.dao.findById(getParaToInt()));
24
render(
"edit.html"
);
25
}
26
27
@Before
(BlogValidator.
class
)
28
public
void
update() {
29
getModel(Blog.
class
).update();
30
list();
31
}
32
33
public
void
delete() {
34
Blog.dao.deleteById(getParaToInt());
35
list();
36
}
37
}
1
public
class
Blog
extends
Model<Blog> {
2
public
static
final
Blog dao =
new
Blog();
3
}
3:Validator(API引导式校验,比xml配置方便N倍)
01
public
class
BlogValidator
extends
Validator {
02
protected
void
validate(Controller controller) {
03
validateRequiredString(
"blog.title"
,
"titleMsg"
,
"请输入Blog标题!"
);
04
validateRequiredString(
"blog.content"
,
"contentMsg"
,
"请输入Blog内容!"
);
05
}
06
07
protected
void
handleError(Controller controller) {
08
controller.keepModel(Blog.
class
);
09
10
String actionKey = getActionKey();
11
if
(actionKey.equals(
"/blog/save"
))
12
controller.render(
"add.html"
);
13
else
if
(actionKey.equals(
"/blog/update"
))
14
controller.render(
"edit.html"
);
15
}
16
}
4:拦截器(本拦截器仅输出文字到控制台,仅是用法示例,本程序可以不需要)
1
public
class
BlogInterceptor
implements
Interceptor {
2
public
void
intercept(ActionInvocation ai) {
3
System.out.println(
"Before invoking "
+ ai.getActionKey());
4
ai.invoke();
5
System.out.println(
"After invoking "
+ ai.getActionKey());
6
}
7
}
JFinal QQ群:222478625
- 史上最快Java Web framework JFinal横空出世
- 史上最快Java Web framework JFinal横空出世
- 史上最强大开源WEB开发工具firebug横空出世!
- Web Services横空出世
- Java EE 5规范横空出世
- LMX 横空出世
- MicroServices Architecture横空出世!
- Microsoft SilverLight横空出世
- Microsoft SilverLight横空出世
- 横空出世的XEN
- struts2-横空出世
- Netbeans7.0横空出世
- 横空出世,席卷Csdn
- pello框架横空出世
- IE10横空出世,一统江湖
- Vim 8.0横空出世
- Linux横空出世
- AEF横空出世——揭开ADO.NET Entity Framework的面纱
- 在web应用中使用日志
- 【每日听力活动训练】第一期 0320
- 【每日听力活动训练】第二期 0321
- SVN由1.6更新到1.8后出现问题
- html form中onsubmit的使用
- 史上最快Java Web framework JFinal横空出世
- 数据挖掘易犯的11大错误与数据分析技能
- 动易系统如何实现按频道搜索的功能
- 深入理解php底层:php生命周期
- eclipse配置android开发环境
- 在用户导入导出excel一直没有正解 考的代码总有问题 在此你不必担心 这能帮你就绝一切
- JFinal之Db开发示例,不使用ActiveRecord的情况
- Linux下安装飞信客户端(OpenFetion)
- QQ2012 Beta 1 登录协议分析