(Post 20/04/2007) JSF là viết tắt của JavaServer
Faces, một bản miêu tả kỹ thuật giúp đơn giản hóa việc phát triển giao
diện cho các ứng dụng Web viết bằng Java bằng cách dùng các thành phần
dùng lại được (reusable components).
JSF là một bộ khung (framework) phát
triển các ứng dụng Web viết bằng Java nhằm làm đơn giản hóa quá trình
phát triển giao diện người dùng cho các ứng dụng J2EE. Để tạo ra giao
diện hiển thị, JSF dùng dạng cấu trúc cây của các thẻ, mỗi thẻ là một
thành phần giao diện (component) và FacesServlet
servlet sẽ thực hiện công đoạn chuyển đổi ra giao diện tương ứng cho người
dùng với định dạng HTML. Ngoài ra, JSF cũng có thể sử dụng các kĩ thuật
hiển thị khác, như XUL. JSF bao gồm:
- Một tập các hàm API để biểu diễn các thành phần UI (giao diện người
dùng) và quản lí thạng thái của chúng, xử lí các sự kiện và kiểm tra
dữ liệu đầu vào, qui định việc di chuyển trang (page navigation),
hỗ trợ tính đa ngôn ngữ và hỗ trợ cho người sử dụng (accessibility)
- Một số thành phần (component) có sẵn
- Hai thư viện chứa các thẻ tùy biến JSP (JavaServer Pages custom
tag) để có thể biễu diển một JavaServer Faces interface
bên trong một trang JSP.
- Mô hình sự kiện ở phía máy chủ (server-side event model)
- Khả năng quản lí trạng thái
- Managed Beans (JavaBeans được tạo bằng dependency injection - xem
thêm Spring framework)
Bản miêu tả kĩ thuật JSF được qui định trong JSR 127
của Quá trình Cộng đồng Java.
Mục tiêu của JSF
8 mục tiêu thiết kế sau là lí do cho sự ra đời của JSF:
- Tạo ra một bộ khung gồm các thành phần giao diện người dùng chuẩn
(standard GUI component framework) nhằm giúp cho các công
cụ phát triển dễ dàng hơn cho người dùng trong việc tạo GUI chất lượng
cao đồng thời quản lí các kết quả của GUI với xử lí thực thi của chương
trình.
- Định ra một tập các lớp cơ sở của Java (lightweight Java base
classes) biễu diễn cho các thành phần UI, trạng thái mỗi thành
phần, và các sự kiện đầu vào. Những lớp này sẽ xử lí những vấn đề
liên quan đến chu kì sống của GUI, đặc biệt là quản lí trạng thái
trong suốt chu trình sống của một trang của thành phần GUI đó.
- Cung cấp một tập các thành phần GUI chung, bao gồm các thành phần
HTML form input. Những thành phần này sẽ được dẫn xuất từ
tập đơn giản các lớp cơ sở (đề cập ở #1) đề từ đó có thể định ra các
thành phần mới.
- Cung cấp một mô hình JavaBeans để có thể truyền đi (dispatch) các
sự kiện từ các GUI controls phía máy khách đến các xử lí hiện thực
cụ thể từ phía ứng dụng máy chủ.
- Định ra các hàm APIs để kiểm chứng dữ liệu nhập, bao gồm hỗ trợ
kiểm chứng từ phía máy chủ.
- Chỉ định một mô hình để có thể đa ngôn ngữ hóa hay địa phương hóa
các GUI.
- Khởi tạo tự động dữ liệu ra phù hợp cho máy khách đích, dựa vào
mọi dữ liệu cấu hình ở máy khách đó, bao gồm cả dựa vào phiên bản
trình duyệt, ví dụ.
- Việc khởi tạo tự động dữ liệu ra còn kèm theo các đòi hỏi về hỗ
trợ người dùng (accessibility), được qui định bởi WAI.
Đặc điểm
Mô hình của JSF là mô hình xử lí hướng sự kiện giống
như trong các ứng dụng GUI truyền thống, sự khác biệt là nó được áp dụng
cho các ứng dụng Web.
Các phiên bản JSF
- JSF 1.0 - bản miêu tả kĩ thuật của JSF chính thức đầu tiên
- JSF 1.1 - bản sửa lỗi chính thức. Không có thay đổi về kĩ thuật
hay HTML renderkit.
- JSF 1.2 - bản chính thức chuẩn bị ra mắt và được miêu tả bởi JSR
252.
- Những cải tiến để cung cấp những giải pháp tạm thời cho vấn
đề trộn lẫn nội dung (content-interweaving problem) được
nói đến tại
đây
- Cung cấp các XML Schema cho các file cấu hình, thay cho việc
dùng DTD
- Các cải tiến để cho pheps các 'faces applications có thể xử
lí nhiều khung (multi-frame), hay các thiết kế đa cửa
sổ người dùng (multi-window UI)
- Các cải tiến thư viện thể f: để nâng cao 'TCK coverage,
các sự kiện liên quan chu trình sống của f:view, và một số đặc
tính nhỏ khác
- Các cải tiến trong việc hỗ trợ trang trí cho các đối
tượng API
- Cải tiến an ninh cho phía trình khách trong việc lưu giữ trạng
thái
- Giải quyết vấn đề "duplicate button press"
- Tổ chức lại bản miêu tả kĩ thuật theo từng phần tiêu chuẩn (normative),
và không tiêu chuẩn, để giúp cho việc hiện thực dễ dàng hơn.
- Các sữa lỗi cho
portlet
- Một sỗ sửa lỗi đòi hỏi sự thay đổi chút ít trong bản miêu tả
kĩ thuật
Các hiện thực của JSF
Có hai hiện thực cho JSF được biết cho đến nay:
Công cụ
- ICEfaces:
Complete Ajax-enabled JSF component library.
- Rialto
JSF: JSF encapsulation of Rialto.
(theo Wikipedia) |