Sức mạnh của JSF 2, Phần 2: Tạo khuôn mẫu và các thành phần phức hợp
Số trang: 41
Loại file: pdf
Dung lượng: 354.05 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Triển khai các giao diện người dùng mở rộng với JavaServer Faces 2 David Geary, Chủ tịch, Clarity Training, Inc. Tóm tắt: Java™Server Faces (JSF) 2 cho phép bạn triển khai thực hiện các giao diện người dùng (UI), dễ dàng sửa đổi và mở rộng với hai tính năng mạnh mẽ: tạo khuôn mẫu và các thành phần phức hợp. Trong bài viết này — bài thứ hai trong loạt bài ba phần về các đặc tính mới của JSF 2 — David Geary, thành viên nhóm chuyên gia JSF 2.0 cho bạn thấy các ứng dụng Web của...
Nội dung trích xuất từ tài liệu:
Sức mạnh của JSF 2, Phần 2: Tạo khuôn mẫu và các thành phần phức hợp Sức mạnh của JSF 2, Phần 2: Tạo khuôn mẫu và các thành phần phức hợpTriển khai các giao diện người dùng mở rộng với JavaServer Faces 2David Geary, Chủ tịch, Clarity Training, Inc.Tóm tắt: Java™Server Faces (JSF) 2 cho phép bạn triển khai thực hiện các giaodiện người dùng (UI), dễ dàng sửa đổi và mở rộng với hai tính năng mạnh mẽ: tạokhuôn mẫu và các thành phần phức hợp. Trong bài viết này — bài thứ hai trongloạt bài ba phần về các đặc tính mới của JSF 2 — David Geary, thành viên nhómchuyên gia JSF 2.0 cho bạn thấy các ứng dụng Web của mình có thể tận dụng tốtnhất việc tạo khuôn mẫu và các thành phần phức hợp như thế nào.Trở lại năm 2000, khi tôi tham gia vào một danh sách gửi thư về JavaServer Pages(JSP), tôi đã gặp Craig McClanahan, người đang làm việc cho một khung công tácWeb mới sinh ra có tên là Struts. Quay lại thời đó, khi di chuyển từ Swin g sanglập trình Java phía máy chủ, tôi đã thực hiện một khung công tác nhỏ để tách biệtcách bài trí khung nhìn của JSP khỏi nội dung của nó, tương tự với tinh thần củacác trình quản lý cách bài trí của Swing. Craig đã hỏi tôi có muốn cho phép đưathư viện tạo khuôn mẫu của tôi vào trong Struts không và tôi đã vui lòng đồng ý.Thư viện khuôn mẫu của Struts (Struts Template Library), được đóng gói cùng vớiStruts 1.0, đã trở thành cơ sở cho thư viện Tiles phổ biến của Strut, để cuối cùngthư viện này đã trở thành một khung công tác Apache hàng đầu.Hiện nay, công nghệ hiển thị mặc định của JSF 2 — Facelets — là một khungcông tác tạo khuôn mẫu phần lớn dựa vào Tiles. JSF 2 cũng cung cấp một cơ chếmạnh, được gọi là các thành phần phức hợp, xây dựng trên các đặc tính tạo khuônmẫu của Facelets để cho bạn có thể triển khai thực hiện các th ành phần tùy chỉnhkhông cần mã Java và không có cấu hình XML nào. Trong bài này, tôi sẽ giớithiệu cho bạn về tạo khuôn mẫu và các thành phần phức hợp với ba lời khuyên đểkhai thác tốt nhất JSF 2: Lời khuyên 1: Giữ nguyên tắc DRY (Đừng lặp lại chính mình). Lời khuyên 2: Hãy dùng cách hợp thành. Lời khuyên 3: Hãy nghĩ theo kiểu LEGO. Facelets và JSF 2Trong khi chuẩn hoá việc thực hiện Facelets mã nguồn mở, Nhóm chuyên gia JSF2 (JSF 2 Expert Group) đã thực hiện một số thay đổi cho các API Facelets bêndưới nhưng giữ lại khả năng tương thích lùi với thư viện thẻ. Điều đó có nghĩa làcác khung nhìn hiện có, được triển khai thực hiện bằng phiên bản mã nguồn mởcủa Facelets sẽ làm việc được với JSF 2.Bạn có thể tìm hiểu thêm về nhiều tính năng của Facelets trong bài viết của RickHightower Facelets vừa khít với JSF (Facelets Fits JSF like a Glove) và Lậptrình Facelets nâng cao (Advanced Facelets programming).Lời khuyên 1: Giữ nguyên tắc DRYTrong công việc đầu tiên của tôi với vai trò nhà phát triển phần mềm, tôi đã triểnkhai thực hiện một giao diện người dùng đồ họa (GUI) cho các hệ thống thiết kếcó hỗ trợ của máy tính và hệ thống chế tác có hỗ trợ của máy tính (CAD/CAM)dựa trên UNIX®.Ban đầu tất cả đã diễn ra khá tốt, nhưng theo thời gian, mã của tôi đã trở nên ngàycàng có nhiều vấn đề. Vào lúc chúng tôi phát hành, hệ thống đã dễ mắc lỗi đếnmức tôi đã sợ hãi việc sửa lỗi và bản phát hành gây ra ngay một luồng tới tấp cácbáo cáo lỗi.Nếu tôi đã theo nguyên tắc DRY — Đừng lặp lại chính mình — khi làm dự án đó,thì tôi có thể đã đã bớt được cho mình nhiều sự phiền toái. Nguyên tắc DRY, doDave Thomas và Andy Hunt đặt ra (xem Tài nguyên), nói rõ:Mỗi một mảnh kiến thức phải được biểu diễn duy nhất, không lập lờ và chính thứctrong một hệ thống.Ứng dụng CAD/CAM của tôi không theo nguy ên tắc DRY — nó đã có quá nhiềusự kết dính giữa các mối quan tâm — vì vậy các thay đổi trong một khu vực đãgây ra những thay đổi bất ngờ ở nơi khác.JSF 1 đã vi phạm nguyên tắc DRY trong một số khía cạnh, ví dụ bằng cách buộcbạn cung cấp hai biểu diễn của bean được quản lý của bạn — một trong XML vàmột trong mã Java. Nhu cầu có nhiều biểu diễn đã làm cho khó khăn hơn khi tạora và thay đổi bean được quản lý. Như tôi đã chỉ ra cho bạn trong Phần 1, JSF 2cho phép bạn sử dụng các chú giải thay vì XML để cấu hình bean được quản lý,cho bạn một cách biểu diễn duy nhất, chính thức của bean đ ược quản lý của bạn.Gác lại Bean được quản lý sang một bên, ngay cả các thói quen hình như vô hại —chẳng hạn như bao gồm bảng định kiểu (stylesheet) giống nhau trong tất cả cáckhung nhìn của bạn — cũng vi phạm nguyên tắc DRY và có thể gây ra lo lắng.Nếu bạn thay đổi tên của bảng định kiểu, bạn phải thay đổi nhiều khung nh ìn. Tốthơn là gói kín việc bao gồm thêm bảng định kiểu nếu bạn có thể làm được.Nguyên tắc DRY cũng áp dụng để thiết kế mã của bạn. Nếu bạn có nhiều phươngthức mà tất cả đều chứa mã để duyệt đi qua một cây chẳng hạn, thì một ý tưởng tốtsẽ là gói kín thuật toán duyệt đi qua một cây, có thể là trong một lớp con.Giữ nguyên tắc DRY đặc biệt quan trọng khi bạn th ...
Nội dung trích xuất từ tài liệu:
Sức mạnh của JSF 2, Phần 2: Tạo khuôn mẫu và các thành phần phức hợp Sức mạnh của JSF 2, Phần 2: Tạo khuôn mẫu và các thành phần phức hợpTriển khai các giao diện người dùng mở rộng với JavaServer Faces 2David Geary, Chủ tịch, Clarity Training, Inc.Tóm tắt: Java™Server Faces (JSF) 2 cho phép bạn triển khai thực hiện các giaodiện người dùng (UI), dễ dàng sửa đổi và mở rộng với hai tính năng mạnh mẽ: tạokhuôn mẫu và các thành phần phức hợp. Trong bài viết này — bài thứ hai trongloạt bài ba phần về các đặc tính mới của JSF 2 — David Geary, thành viên nhómchuyên gia JSF 2.0 cho bạn thấy các ứng dụng Web của mình có thể tận dụng tốtnhất việc tạo khuôn mẫu và các thành phần phức hợp như thế nào.Trở lại năm 2000, khi tôi tham gia vào một danh sách gửi thư về JavaServer Pages(JSP), tôi đã gặp Craig McClanahan, người đang làm việc cho một khung công tácWeb mới sinh ra có tên là Struts. Quay lại thời đó, khi di chuyển từ Swin g sanglập trình Java phía máy chủ, tôi đã thực hiện một khung công tác nhỏ để tách biệtcách bài trí khung nhìn của JSP khỏi nội dung của nó, tương tự với tinh thần củacác trình quản lý cách bài trí của Swing. Craig đã hỏi tôi có muốn cho phép đưathư viện tạo khuôn mẫu của tôi vào trong Struts không và tôi đã vui lòng đồng ý.Thư viện khuôn mẫu của Struts (Struts Template Library), được đóng gói cùng vớiStruts 1.0, đã trở thành cơ sở cho thư viện Tiles phổ biến của Strut, để cuối cùngthư viện này đã trở thành một khung công tác Apache hàng đầu.Hiện nay, công nghệ hiển thị mặc định của JSF 2 — Facelets — là một khungcông tác tạo khuôn mẫu phần lớn dựa vào Tiles. JSF 2 cũng cung cấp một cơ chếmạnh, được gọi là các thành phần phức hợp, xây dựng trên các đặc tính tạo khuônmẫu của Facelets để cho bạn có thể triển khai thực hiện các th ành phần tùy chỉnhkhông cần mã Java và không có cấu hình XML nào. Trong bài này, tôi sẽ giớithiệu cho bạn về tạo khuôn mẫu và các thành phần phức hợp với ba lời khuyên đểkhai thác tốt nhất JSF 2: Lời khuyên 1: Giữ nguyên tắc DRY (Đừng lặp lại chính mình). Lời khuyên 2: Hãy dùng cách hợp thành. Lời khuyên 3: Hãy nghĩ theo kiểu LEGO. Facelets và JSF 2Trong khi chuẩn hoá việc thực hiện Facelets mã nguồn mở, Nhóm chuyên gia JSF2 (JSF 2 Expert Group) đã thực hiện một số thay đổi cho các API Facelets bêndưới nhưng giữ lại khả năng tương thích lùi với thư viện thẻ. Điều đó có nghĩa làcác khung nhìn hiện có, được triển khai thực hiện bằng phiên bản mã nguồn mởcủa Facelets sẽ làm việc được với JSF 2.Bạn có thể tìm hiểu thêm về nhiều tính năng của Facelets trong bài viết của RickHightower Facelets vừa khít với JSF (Facelets Fits JSF like a Glove) và Lậptrình Facelets nâng cao (Advanced Facelets programming).Lời khuyên 1: Giữ nguyên tắc DRYTrong công việc đầu tiên của tôi với vai trò nhà phát triển phần mềm, tôi đã triểnkhai thực hiện một giao diện người dùng đồ họa (GUI) cho các hệ thống thiết kếcó hỗ trợ của máy tính và hệ thống chế tác có hỗ trợ của máy tính (CAD/CAM)dựa trên UNIX®.Ban đầu tất cả đã diễn ra khá tốt, nhưng theo thời gian, mã của tôi đã trở nên ngàycàng có nhiều vấn đề. Vào lúc chúng tôi phát hành, hệ thống đã dễ mắc lỗi đếnmức tôi đã sợ hãi việc sửa lỗi và bản phát hành gây ra ngay một luồng tới tấp cácbáo cáo lỗi.Nếu tôi đã theo nguyên tắc DRY — Đừng lặp lại chính mình — khi làm dự án đó,thì tôi có thể đã đã bớt được cho mình nhiều sự phiền toái. Nguyên tắc DRY, doDave Thomas và Andy Hunt đặt ra (xem Tài nguyên), nói rõ:Mỗi một mảnh kiến thức phải được biểu diễn duy nhất, không lập lờ và chính thứctrong một hệ thống.Ứng dụng CAD/CAM của tôi không theo nguy ên tắc DRY — nó đã có quá nhiềusự kết dính giữa các mối quan tâm — vì vậy các thay đổi trong một khu vực đãgây ra những thay đổi bất ngờ ở nơi khác.JSF 1 đã vi phạm nguyên tắc DRY trong một số khía cạnh, ví dụ bằng cách buộcbạn cung cấp hai biểu diễn của bean được quản lý của bạn — một trong XML vàmột trong mã Java. Nhu cầu có nhiều biểu diễn đã làm cho khó khăn hơn khi tạora và thay đổi bean được quản lý. Như tôi đã chỉ ra cho bạn trong Phần 1, JSF 2cho phép bạn sử dụng các chú giải thay vì XML để cấu hình bean được quản lý,cho bạn một cách biểu diễn duy nhất, chính thức của bean đ ược quản lý của bạn.Gác lại Bean được quản lý sang một bên, ngay cả các thói quen hình như vô hại —chẳng hạn như bao gồm bảng định kiểu (stylesheet) giống nhau trong tất cả cáckhung nhìn của bạn — cũng vi phạm nguyên tắc DRY và có thể gây ra lo lắng.Nếu bạn thay đổi tên của bảng định kiểu, bạn phải thay đổi nhiều khung nh ìn. Tốthơn là gói kín việc bao gồm thêm bảng định kiểu nếu bạn có thể làm được.Nguyên tắc DRY cũng áp dụng để thiết kế mã của bạn. Nếu bạn có nhiều phươngthức mà tất cả đều chứa mã để duyệt đi qua một cây chẳng hạn, thì một ý tưởng tốtsẽ là gói kín thuật toán duyệt đi qua một cây, có thể là trong một lớp con.Giữ nguyên tắc DRY đặc biệt quan trọng khi bạn th ...
Tìm kiếm theo từ khóa liên quan:
lập trình java công nghệ java phát triển với java lập mô hình dịch vụ web java ngôn ngữ lập trìnhGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 270 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 261 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 260 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 230 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 220 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 213 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 202 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 177 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 169 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 161 0 0