Chapter 1 JSF 1.2 overview
JSF ( Java Server Faces ) 在 JavaEE5 之中, 是採用 1.2 的版本. 目前的 RI 僅有 SUN 釋出的版本, 並且可以使用在 NetBeans 5.5 與 Glassfish 之中. 主要來說, 簡化了相關的開發方式, 以及 Scoped Managed Bean 可以利用 @Annotation 的方式快速存取相關的資源.
之前使用 JSF 大多採用 Apache MyFaces 專案的東西, 可以簡單地使用相關的 extend 元件 ( Tomahawk ) , 我則是主要使用 Tiles 的功能放在系統之中. 增加 layout 管理的方便性. 然而, 目前因為 MyFaces 僅支援到 JSF 1.1 , 所以未來的計畫應該會讓 MyFaces 升級到 1.2 的版本.
JSF 與 Struts 都屬於是 Web-tier MVC Framework, 採用的技術與觀念有些許的不同, Struts 比較偏向於 request-based, 然而 JSF 則屬於 Event-Driven 的動作, 因此, 在 controller 之中, 我們應用 JSF 是根據每個元件製作相關的 Handler, 而 Struts 則是以 Form 為一個基礎.
也許有人會希望將相關的 jsf 放到 tomcat5.5 + JavaSE5 的環境執行, 那麼, 目前的情況可以到 javaserverfaces.dev.java.net 下載 RI 的 jar 檔案. 當我們開始要設計 JSF 的時候, 必須先清空原本 MVC Framework 的概念, 否則, 很容易被思考上所限制.
JSF 1.2 所提供的標準 HTML 基本 RenderKit 有
- Command
- Button
- Link
- Data
- Table
- Form
- Form
- Graphic
- Image
- Input
- Hidden
- Secret
- Text
- Textarea
- Messages
- Message
- Messages
- Output
- Format
- Label
- Link
- Text
- Panel
- Grid
- Group
- SelectBoolean
- Checkbox
- SelectMany
- Checkbox
- Listbox
- Menu
- SelectOne
- Listbox
- Menu
- Radio
我相信, 大多數人會自行開發適合元件. JSF1.2 更是針對這些元件開發族群, 簡化了一些工作. 另外, AJAX 的風行, 也讓 JSF event-driven Framework 受到重視, 加上 jMaki 可以簡單的將 taglib 嵌入到 JSP, 搭配 jsf 的功能就可以很快地產出相關的系統.