JFinal 是基於 Java 語言的極速 WEB + ORM 框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言全部優點的同時再擁有ruby、python、php等動態語言的開發效率!爲您節約更多時間,去陪戀人、家人和朋友 :)php
MVC架構,設計精巧,使用簡單java
遵循COC原則,零配置,無xmlpython
首創Db + Record模式,靈活便利git
ActiveRecord支持,使數據庫開發極致快速web
自動加載修改後的java文件,開發過程當中無需重啓web server數據庫
AOP支持,攔截器配置靈活,功能強大windows
Plugin體系結構,擴展性強後端
多視圖支持,支持FreeMarker、JSP、Velocityruby
強大的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官方微信歡迎您的加入: