Khởi đầu với JavaServer Faces 1.2, Phần 1: Xây dựng các ứng dụng cơ bản Richard Hightower, Giám đốc công nghệ, ArcMind docx

81 420 2
Khởi đầu với JavaServer Faces 1.2, Phần 1: Xây dựng các ứng dụng cơ bản Richard Hightower, Giám đốc công nghệ, ArcMind docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Khởi đầu với JavaServer Faces 1.2, Phần 1: Xây dựng ứng dụng Richard Hightower, Giám đốc công nghệ, ArcMind Tóm tắt: Cơng nghệ Java™Server Faces (JSF), khung cơng tác phía máy chủ cung cấp cách tiếp cận dựa vào thành phần để việc phát triển giao diện người dùng web, có từ lâu JSF 1.2 (kết hợp chặt chẽ Java Enterprise Edition 5) sửa chữa số điểm phiền hà JSF thêm vào số tính tốt đẹp Loạt hướng dẫn trình bày cách bắt đầu với JSF 1.2 Nó nặng ví dụ nhẹ lý thuyết — bạn cần để bắt đầu nhanh chóng Trước bạn bắt đầu Giới thiệu loạt Loạt hướng dẫn nói bước khởi đầu với cơng nghệ JavaServer Faces (JSF), khung công tác thành phần giao diện người dùng phía máy chủ cho ứng dụng web dựa Java Loạt dành cho nhà phát triển, người bắt đầu tìm hiểu JSF muốn tiến nhanh — không với JSF, mà với việc sử dụng thành phần JSF để giảm cơng sức Loạt trình bày điều cốt yếu, với nhiều ví dụ JSF môi trường phát triển GUI truyền thống, giống AWT, SWT, Swing Một lợi ích nó làm cho việc phát triển Web dễ dàng cách giao cơng việc khó khăn cho nhà phát triển khung công tác, cho nhà phát triển ứng dụng Cứ cho thân JSF phức tạp nhiều so với khung công tác Web khác, phức tạp che giấu không nhà phát triển ứng dụng biết Phát triển ứng dụng Web JSF dễ dàng nhiều so với hầu hết khung cơng tác khác: địi hỏi viết mã hơn, phức tạp hơn, việc cấu hình Nếu bạn thực phát triển Java phía máy chủ, JSF khung cơng tác dễ để tìm hiểu Nó định hướng để tạo ứng dụng Web (không trang web) Nó cho phép bạn tập trung vào việc mã hóa Java bạn mà khơng cần đối phó với đối tượng yêu cầu, đối tượng phiên, thơng số u cầu, đối phó với tệp tin XML phức tạp Với JSF, nhiều thứ thực nhanh so với khung công tác Web Java khác Về hướng dẫn Hướng dẫn theo cách tiếp cận để phát triển JSF Bạn không sử dụng công cụ màu mè hay hỗ trợ IDE hướng dẫn (mặc dù hỗ trợ sử dụng công cụ ích lợi JSF) Bạn thực lập trình tay khơng! Tơi đề cập điểm cốt yếu, với lý thuyết vừa đủ để tiếp tục trì việc trình bày bạn học tập cách hiệu việc sử dụng JSF để xây dựng ứng dụng Web Bạn ngạc nhiên biết JSF lập trình dễ dàng so với khung công tác Web Java khác, chí khơng có cơng cụ IDE ưa thích Các mục tiêu Trong hướng dẫn này, bạn nhận tổng quan tính JSF tìm hiểu cách làm để viết ứng dụng JSF Bạn xây dựng ứng dụng máy tính bỏ túi đơn giản và, nhiều lần, cải thiện vẻ ngồi cảm nhận nó, sửa đổi cấu trúc để bổ sung thêm nội xạ phụ thuộc thực chế dẫn hướng JSF Trong Phần 2, bạn xây dựng trình biến đổi (converter), duyệt tính hợp lệ, trình nghe pha (phase-listener) theo yêu cầu Ai nên tìm hiểu hướng dẫn này? Nếu bạn người bắt đầu tìm hiểu JSF, hướng dẫn để dành cho bạn Ngay bạn sử dụng JSF chưa thử nghiệm tính JSF 1.2 sử dụng công cụ GUI để xây dựng ứng dụng JSF, bạn có khả học hỏi nhiều từ hai hướng dẫn loạt Các điều kiện cần trước Hướng dẫn viết cho nhà phát triển Java với kinh nghiệm mức bắt đầu tới mức trung cấp Bạn cần phải có hiểu biết chung cách sử dụng ngôn ngữ Java, với số kinh nghiệm phát triển GUI Các yêu cầu hệ thống Để chạy ví dụ hướng dẫn này, bạn cần có môi trường phát triển Java (JDK) Maven Apache Nó giúp để có IDE Java Các tệp tin dự án Maven tệp tin dự án Eclipse Java EE Web Tools Project (WTP) cung cấp sẵn Xem Tải để nhận mã ví dụ JSF dành cho người bắt đầu Giống Swing AWT, JSF khung công tác phát triển cung cấp thành phần GUI tiêu chuẩn, dùng lại được, JSF dùng để xây dựng giao diện ứng dụng Web JSF cung cấp lợi phát triển sau:  Tách biệt hồn tồn hành vi cách trình bày  Kiểm sốt tính có trạng thái (statefulness) mức thành phần  Các kiện dễ dàng liên kết với mã phía máy chủ  Sử dụng khái niệm thành phần UI tầng Web (Web-tier) quen thuộc  Cung cấp nhiều dụng cụ nhà sản xuất phần mềm tiêu chuẩn hóa  Sự hỗ trợ IDE tuyệt vời Một ứng dụng JSF điển hình bao gồm phần sau đây:  JavaBeans để quản lý trạng thái hành vi ứng dụng  Các thành phần GUI có trạng thái  Phát triển hướng kiện (thơng qua trình nghe-listener) giống phát triển GUI truyền thống  Các trang biểu diễn khung nhìn theo phong cách Model-ViewController (MVC); trang web tham khảo gốc khung nhìn (view roots) thông qua thành phần JSF Bạn cần phải có khả để vượt qua số chướng ngại thuộc khái niệm để sử dụng JSF, làm đáng công cố gắng Việc quản lý trạng thái thành phần JSF; việc duyệt tính hợp lệ liệu đầu vào người dùng dễ sử dụng; xử lý kiện mức chi tiết, dựa thành phần; kiến trúc mở rộng dễ dàng; tất làm đơn giản đáng kể công sức phát triển web bạn Phần giải thích tính quan trọng số cách chi tiết Một kiến trúc dựa trên-thành phần Hãy nghĩ theo cách thành phần có trạng thái Chướng ngại lớn mà bạn gặp phải bạn quên JSF mơ hình thành phần có trạng thái Nếu bạn sử dụng Struts từ trước, lặp lại theo câu này: "JSF Struts JSF khơng phải Struts" Tơi thấy người có tảng GUI Swing, AWT, Visual Basic, hay Delphi học JSF nhanh nhiều so với người sử dụng Struts nhiều năm, chưa thực phát triển thành phần GUI trước Hướng dẫn thiết kế để giúp bạn nghĩ theo cách thành phần có trạng thái JSF cung cấp thẻ thành phần cho tất trường đầu vào có sẵn HTML tiêu chuẩn Bạn viết thành phần tuỳ biến riêng bạn cho mục đích riêng cho ứng dụng tổ hợp nhiều thành phần HTML để tạo thành phức hợp — ví dụ, thành phần trình chọn ngày tháng (Data Picker) có chứa ba danh sách chọn thả xuống Các thành phần JSF có trạng thái Tính có trạng thái chúng khung cơng tác JSF cung cấp JSF sử dụng thành phần để sinh đáp ứng HTML Nhiều thành phần GUI JSF bên thứ ba có sẵn JSF bao gồm:  Một mơ hình kiện-xuất  Một chứa (container) nhẹ, đảo ngược-điều khiển (IoC)  Các thành phần cho hầu hết đặc tính GUI phổ biến khác, bao gồm (nhưng không hạn chế): o Công cụ biểu (rendering) cắm chạy o Trình duyệt tính hợp lệ phía máy chủ o Biến đổi liệu o Quản lý dẫn hướng trang Là kiến trúc dựa thành phần, JSF có khả cấu hình mở rộng cao Hầu hết chức JSF — dẫn hướng tìm kiếm bean-quản lý — thay thành phần cắm Tính dễ dàng cắm thêm mang lại cho bạn linh hoạt đáng kể việc xây dựng GUI ứng dụng Web bạn cho phép bạn kết hợp chặt chẽ công nghệ dựa thành phần khác cách dễ dàng với nỗ lực phát triển JSF bạn Ví dụ, bạn thay khung cơng tác có sẵn đảo ngược điều khiển (IoC) JSF khung cơng tác Spring lập trình hướng khía cạnh (aspect-oriented programming AOP)/đảo ngược điều khiển đầy đủ tính việc tìm kiếm bean quản lý Tơi trình bày nhiều tính nâng cao phần Công nghệ JSF JSP Giao diện người dùng ứng dụng JSF bao gồm trang JavaServer Pages (JSP) Mỗi trang JSP có chứa thành phần JSF để thể chức GUI Bạn sử dụng thư viện thẻ tùy biến JSF bên trang JSP để biểu thành phần UI, để đăng ký trình xử lý kiện, để kết hợp thành phần với trình duyệt tính hợp lệ (validator), để kết hợp thành phần với trình biến đổi liệu (converter), nhiều JSF khơng có kiến thức JSP JSF khơng có để làm với thân JSP JSF làm việc với JSP thông qua cầu nối thư viện thẻ JSP Tuy nhiên, vòng đời JSF khác so với vòng đời JSP Facelets phù hợp với JSF nhiều so với JSP Facelets thiết kế với JSF tâm trí, việc kết hợp JSF JSP luôn giống bắt miếng gỗ hình vng vào lỗ trịn Bạn nên suy nghĩ Facelets; tính Facelets phần JSF 2.0 Xem Tài ngun để biết thêm thơng tin Facelets Điều nói rằng, thật JSF vốn khơng ràng buộc với công nghệ JSP Trong thực tế, thẻ JSF trang JSP sử dụng để tham khảo thành phần cho chúng hiển thị Các thành phần có vịng đời khác với trang JSP Bạn thấy rõ điều lần bạn sửa đổi trang JSP để thay đổi thuộc tính thành phần JSF nạp lại trang khơng có điều xảy Đó thẻ tìm kiếm thành phần trạng thái Nếu thành phần tồn tại, thẻ tuỳ biến không thay đổi trạng thái Mơ hình thành phần cho phép mã trình điều khiển bạn thay đổi trạng thái thành phần (ví dụ, vơ hiệu trường văn bản), khung nhìn hiển thị, trạng thái thành phần bạn hiển thị Một ứng dụng JSF điển hình khơng cần phải có mã Java có mã ngôn ngữ biểu thức phổ quát (JSTL EL) UI Như tơi lưu ý trước đó, có nhiều công cụ IDE để xây dựng hợp dịch ứng dụng JSF, có thị trường bên thứ ba cho thành phần GUI JSF Cũng có khả viết mã JSF mà không sử dụng công cụ WYSIWYG (như bạn làm hướng dẫn này), JSF thiết kế với công cụ WYSIWYG IDE tâm trí Chúng ta khơng cần hỗ trợ khó chịu IDE WYSIWYG Mặc dù JSF thiết kế với hỗ trợ IDE WYSIWYG tâm trí, bạn không cần phải sử dụng hỗ trợ IDE WYSIWYG để có lợi ích JSF Trong thực tế, JSF dễ sử dụng nhiều so với hầu hết khung công tác Web Java bạn viết mã tay Nếu bạn lập trình Swing, bạn sử dụng IDE WYSIWYG, nhiều khả bạn sử dụng cơng cụ với JSF Nếu bạn thích viết mã Swing tay hơn, bạn thích mã hóa JSF tay Đó lập trình tay không! Các cải tiến JSP 1.2 JSF 2.1 JSP 2.1 thêm nhiều tính để hỗ trợ JSF, bao gồm API ngôn ngữ biểu thức phổ quát (EL) mà JSF 1.2 bổ sung thêm vào Với thẻ JSTL tiêu chuẩn, bạn lặp qua danh sách biểu thành phần JSF, điều mà JSF 1.1 JSP 2.0 làm Xem Tài nguyên để biết thêm chi tiết thay đổi thực JSP 2.1 (Ngay với cải tiến này, Facelets phù hợp JSF tốt nhiều, có nhiều ý tưởng từ Facelets đưa vào JSF 2.0.) JSF MVC JSF kết học thu qua nhiều năm phát triển kỹ thuật phát triển Web tảng Java Xu hướng bắt đầu với công nghệ JSP, cho dù có nhiều ưu điểm, làm cho dễ dàng trộn lẫn mã Java với mã HTML (và mã giống HTML) Bước tiến kiến trúc Mơ hình nhà phát triển đẩy hầu hết mã mặt sau vào thành phần JavaBeans sau nhập thành phần JavaBeans vào trang Web với thẻ Điều hoạt động tốt với ứng dụng Web đơn giản, nhiều nhà phát triển Java khơng thích kết hợp cơng nghệ JSP với đặc tính C++ ví dụ lệnh bao gồm (include) tĩnh Vì vậy, kiến trúc Mơ hình giới thiệu Về bản, kiến trúc Mơ hình phiên MVC thấp cho ứng dụng Web Trong kiến trúc Mơ hình 2, trình điều khiển thể servlet (hoặc Action) việc hiển thị giao cho trang JSP Struts Apache thực thi Mơ hình đơn giản hố, nơi mà Action chỗ servlet Trong Struts, logic trình điều khiển ứng dụng tách khỏi liệu (được biểu diễn ActionForms) Các lời phàn nàn chủ yếu chống lại Struts cảm thấy có nhiều tính thủ tục hướng đối tượng ("COBOL cho Web") WebWork Spring MVC hai kiến trúc Mơ hình khác để cải tiến Struts để tính thủ tục hơn, hai không chấp nhận rộng rãi Struts Và hai không cung cấp mơ hình thành phần có trạng thái JSF làm (Struts xây dựng bên WebWork, sở mã lệnh Struts ban đầu bị loại bỏ Ngay Struts không muốn) Vấn đề thực với hầu hết khung cơng tác Mơ hình chỗ mơ hình kiện q đơn giản (chủ yếu MVC thu nhỏ nhiều), khơng có thành phần GUI có trạng thái, để lại nhiều công việc cho nhà phát triển Một mơ hình thành phần kiện phong phú làm cho dễ dàng tạo loại tương tác mà hầu hết người dùng mong đợi Cũng giống công nghệ JSP, hầu hết khung công tác Mơ hình làm cho q dễ dàng trộn lẫn bố trí định dạng HTML với thẻ tùy biến GUI, hoạt động giống thành phần, ngoại trừ chúng khơng có trạng thái Và số kiến trúc Mơ hình (như Struts kinh điển) phạm lỗi tách biệt hành vi với trạng thái, mang lại cho nhiều nhà phát triển Java cảm giác họ lập trình COBOL Một mơi trường MVC phong phú JSF Struts; trút hết cốc bạn để bạn đổ đầy JSF khơng phải khung cơng tác Mơ hình Nó có nhiều Nhiều người tin tác giả ban đầu Struts người lãnh đạo đặc tả kỹ thuật JSF, nên kỹ Struts sử dụng dự án JSF Đừng cố gắng lập trình JSF giống Struts Bạn cần phải từ bỏ số kỹ Struts bạn học kỹ JSF JSF cung cấp mơ hình thành phần môi trường MVC phong phú — phong phú nhiều khung cơng tác Mơ hình JSF gần gũi nhiều với mơi trường lập trình MVC thực thụ gần kiến trúc Mơ hình 2, xây dựng bên giao thức không trạng thái JSF tạo thuận lợi cho việc xây dựng GUI hướng kiện, mức chi tiết mịn so với khung công tác Mơ hình Trong JSF cung cấp cho bạn số đông tùy chọn kiện — mục trình đơn chọn, nút ấn nhấn, nút mở rộng, — hầu hết Mô hình dựa kiện đơn giản "đã nhận u cầu." Mơ hình kiện tinh chỉnh JSF cho phép ứng dụng bạn bị ràng buộc với chi tiết HTTP làm đơn giản nỗ lực phát triển bạn JSF cải tiến chút kiến trúc Mô hình truyền thống cách làm dễ dàng việc di chuyển logic trình bày logic nghiệp vụ ngồi trình điều khiển bạn, di chuyển logic nghiệp vụ khỏi trang JSP bạn Trong thực tế, lớp trình điều khiển đơn giản không bị ràng buộc chút với JSF, làm cho chúng dễ dàng thử nghiệm Không giống kiến trúc MVC thực thụ, tầng mơ hình JSF có khả phát nhiều kiện phải giải nhiều cổng nhìn (mặc dù Crank cố gắng thực điều này, với hỗ trợ từ JBoss ajax4JSF; xem Tài nguyên) Một lần nữa, điều khơng cần thiết bạn làm việc với giao thức phi trạng thái Sự kiện hệ thống để thay đổi cập nhật khung nhìn ln ln (tơi dám nói ln ln?) u cầu từ người sử dụng Các chi tiết thực thi MVC JSF Trong thực thi MVC JSF, việc ánh xạ beans quản lý làm trung gian khung nhìn mơ hình Vì thế, điều quan trọng hạn chế logic nghiệp vụ logic lâu bền beans quản lý, gắn với JSF Một giải pháp thay chung giao logic nghiệp vụ cho mơ hình ứng dụng Trong trường hợp này, bean quản lý ánh xạ với đối tượng mơ hình, nơi khung nhìn hiển thị chúng (như thuộc tính bean quản lý) Tơi có xu hướng tách biệt beans quản lý thành hai loại: beans quản lý gắn với JSF (trình điều khiển) beans quản lý không gắn với JSF (các đối tượng mơ hình) Khơng giống cơng nghệ JSP, thực thi khung nhìn JSF mơ hình thành phần có trạng thái Khung nhìn JSF gồm hai phần gốc khung nhìn (view root) trang JSP Gốc khung nhìn sưu tập thành phần UI để trì trạng thái UI Giống Swing AWT, thành phần JSF sử dụng mẫu thiết kế phức hợp để quản lý thành phần (nói đơn giản: chứa chứa thành phần; chứa thành phần) Trang JSP liên kết thành phần UI với trang JSP cho phép bạn liên kết thành phần trường với thuộc tính beans hậu thuẫn (hay thuộc tính thuộc tính) liên kết nút nhấn với trình xử lý kiện phương thức hành động Hình minh hoạ cấu trúc ví dụ ứng dụng (một ứng dụng mà bạn tìm hiểu chi tiết!) theo quan điểm MVC: Hình Ứng dụng mẫu từ phối cảnh MVC Nếu phần JSF làm bạn phải lắc đầu chút đừng lo lắng: bạn vượt qua lúc khó khăn Đi sâu vào khung công tác mặt khái niệm JSF qua nửa chiến với việc thực công nghệ — bạn sớm thấy đáng cơng khó nhọc Nhưng lý thuyết đủ: tay không viết vài đoạn mã! } Điều quan trọng phải nghĩ JSF mơ hình thành phần GUI truyền thống nhiều phiên vui mắt Mơ hình Vơ khối khả xuất bạn nhớ JSF mô hình thành phần Bạn thiết lập giá trị secondNumberInput Listing 35 đối tượng, đoạn mã HTML JSP Bạn thao tác nó, nhớ giá trị Đó có trạng thái Làm việc với thuộc tính Hầu hết thuộc tính JSF nhận giá trị biểu thức, bạn muốn chuyển sang nhãn trường màu đỏ có lỗi xảy ra, bạn dễ dàng làm vậy, hiển thị Listing 36: Listing 36 Chuyển sang nhãn đỏ Lưu ý thuộc tính styleClass gán với biểu thức #{calculatorController.firstNumberStyleClass}, để liên kết với phương thức Listing 37: Listing 37 Quay lại lớp kiểu dáng có lỗi xảy public String getFirstNumberStyleClass() { if (firstNumberInput.isValid()) { return "labelClass"; } else { return "errorClass"; } } Listing 37 hỏi thành phần firstNumbedInput đầu vào có hợp lệ khơng sau thay đổi styleClass để trả dựa câu trả lời có hợp lệ hay khơng Dẫn hướng JSF JSF có chế dẫn hướng (tương tự với Struts) Cơ chế dẫn hướng JSF có kết logic để bạn ánh xạ tới khung nhìn logic Trong phần này, bạn thêm việc dẫn hướng vào ứng dụng Calculator Các quy tắc dẫn hướng Hình 11 cho thấy quy tắc dẫn hướng mà bạn bổ sung thêm vào ứng dụng: Hình 11 Các quy tắc dẫn hướng để bổ sung thêm vào ứng dụng Calculator Thật thú vị có cơng cụ giúp bạn trình bày luồng lưu thơng ứng dụng Web bạn Nhiều IDE cung cấp công cụ để vẽ quy tắc dẫn hướng ứng dụng JSF Hình 12 cho thấy cơng cụ trình bày quy tắc dẫn hướng Eclipse JEE: Hình 12 Trình bày quy tắc dẫn hướng Eclipse Sau bạn thực xong phần này, Hình 11 12 mang lại nhiều ý nghĩa Có lẽ bạn khơng cần phải dẫn hướng Có bạn cần phải di chuyển từ khung nhìn tới khung nhìn Tuy nhiên, nhiều khung cơng tác thành phần JSF có khung nhìn dạng khung nhìn dạng phiếu Mỗi khung nhìn có 10 phiếu, nhấn chuột vào phiếu nạp phần khác khung nhìn Khi sử dụng thiết kế này, bạn dễ dàng tạo ứng dụng lớn mà viết quy tắc dẫn hướng, tồn ứng dụng nằm khung nhìn Các nhánh cách tiếp cận này, bao gồm cánh vòng tránh cách làm tốt nhất, nằm phạm vi hướng dẫn Đầu tiên bạn thêm trang chủ để liên kết với trang calculator Sau đó, bạn phân chia trang calculator thành hai trang: để hiển thị khung nhìn calculator, để hiển khung nhìn kết Bạn cần quy tắc dẫn hướng qua lại trang calculator, trang kết quả, trang chủ Liên kết từ trang chủ tới trang calculator Bạn liên kết từ trang chủ tới trang calculator theo ba cách:  Qua commandLink quy tắc dẫn hướng  Qua commandLink quy tắc dẫn hướng cách sử dụng trang chuyển hướng  Qua outputLink Liên kết thông qua commandLink quy tắc dẫn hướng thực cách thêm quy tắc dẫn hướng vào tệp tin faces-config.xml, hiển thị Listing 38: Listing 38 Quy tắc dẫn hướng định nghĩa faces-config.xml CALCULATOR /pages/calculator.jsp Listing 38 nói rõ hành động có trả CALCULATOR làm cho JSF nạp /pages/calculator.jsp khung nhìn Quy tắc động, hành động từ nơi ứng dụng có trả CALCULATOR tới /pages/calculator.jsp (trừ áp dụng quy tắc cụ thể — JSF bạn thêm làm cho quy tắc áp dụng cho khung nhìn đó, tơi đề cập trường hợp quy tắc cụ thể đoạn sau phần này) Listing 38 tương tự với chuyển tiếp tồn cục theo cách nói Struts Trong form này, thêm vào commandLink hiển thị Listing 39, Nó phải nằm : Listing 39 Sử dụng commandLink trang chủ Điều có tác dụng bạn mong đợi: ứng dụng Calculator nạp vào trình duyệt Người sử dụng thấy khó hiểu URL trình duyệt cịn http://localhost:8080/calculator3/home.jsf khung nhìn calculator hiển thị Điều gây rối, đặc biệt cho người dùng có hiểu biết Web Và người dùng người muốn đánh dấu phần calculator ứng dụng liên kết thực Một cách để sửa lỗi sử dụng redirect (sự chuyển hướng) quy tắc dẫn hướng faces-config.xml, hiển thị Listing 40: Listing 40 Quy tắc dẫn hướng với phần tử redirect CALCULATOR_REDIRECT /pages/calculator.jsp Một commandLink sử dụng quy tắc dẫn hướng cách rõ chuỗi ký tự kết đầu giá trị thuộc tính action (hành động) Khi nhấn vào, liên kết Listing 41 đưa người dùng đến trang calculator: Listing 41 Sử dụng quy tắc dẫn hướng với redirect Điều giải vấn đề, phải trả giá cho cú truy cập thêm nhỏ tới máy chủ, kết nối chậm kéo dài Nhưng bạn xây dựng ứng dụng nội bộ, cú truy nhập không quan trọng Bạn truy nhập máy chủ hai lần bạn không chủ tâm kết nối trực tiếp tới trang web mà bạn muốn nạp, hiển thị Listing 42: Listing 42 Liên kết trực tiếp với outputLink Listing 42 liên kết trực tiếp đến khung nhìn Trong kiến trúc Mơ hình JSF, liên kết trực tiếp từ khung nhìn tới khung nhìn coi hình thái tồi Thơng thường, trình điều khiển cần có hội để khởi tạo mơ hình cho khung nhìn tiếp theo, tốt thông qua phương thức hành động Tuy nhiên, Listing 42 tạo liên kết, URL lên trình duyệt Khả để đánh dấu ứng dụng JSF vấn đề thời gian Một số khung công tác giải vấn đề này, bao gồm JBoss Seam Đây vấn đề nhỏ thời gian giải JSF Dẫn hướng đến trang kết Sau bạn thực phép tính máy tính, bạn muốn khung nhìn trang kết Để thực điều này, thêm quy tắc dẫn hướng Listing 43: Listing 43 Quy tắc dẫn hướng từ tất hành động khung nhìn máy tính tới trang kết Calculator View /pages/calculator.jsp results /pages/results.jsp Listing 43 nói khung nhìn khung nhìn máy tính (calculator.jsp), hành động trả kết (results), khung nhìn JSF trang kết (results.jsp) JSF xem xét giá trị trả từ phương thức hành động biến đổi chúng thành chuỗi ký tự (nếu chúng khác null) sử dụng chuỗi ký tự để chọn khung nhìn Kiểu trả đối tượng phương thức toString gọi (Nhiều người sử dụng kiểu Enum) Thay đổi tất phép tính bạn để trả results, phương thức cộng add() hiển thị Listing 44: Listing 44 Các phương thức hành động trả kết public String add() { FacesContext facesContext = FacesContext.getCurrentInstance(); try { calculator.add(); facesContext.addMessage(null, new FacesMessage( FacesMessage.SEVERITY_INFO, "Added successfully", null)); } catch (Exception ex) { facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, ex.getMessage(), null)); } return "results"; } Lưu ý phương thức add() trả kết quả, kết ánh xạ đến results.jsp Lưu ý nút Cancel (Huỷ) không trả kết Nếu hành động trả giá trị mà không ánh xạ đến quy tắc dẫn hướng, JSF lưu lại khung nhìn Bạn nhận cụ thể hơn, Listing 45: Listing 45 Các ánh xạ khớp với hành động Calculator View /pages/calculator.jsp #{calculatorController.add} results /pages/results.jsp Nhưng bạn cần phải có ánh xạ cho phương thức Chán q! Đó thật khơng lặp lại (DRY ) Bạn muốn thêm commandButton trở trang chủ vào trang calculator, hiển thị Listing 46: Listing 46 Các hành động Calculator với liên kết trở trang chủ Lưu ý liên kết trở trang chủ rõ giá trị hành động HOME Listing 47 cho thấy quy tắc dẫn hướng ánh xạ kết HOME mà liên kết trở trang chủ sử dụng đến trang chủ: Listing 47 Ánh xạ quy tắc dẫn hướng đến trang chủ HOME /home.jsp Lưu ý commandButton commandLink làm việc quy tắc dẫn hướng xử lý hành động Trang kết có liên kết quay trang calculator liên kết quay trang chủ, hiển thị Listing 48: Listing 48 Trang kết trang chủ quay lại trang calculator Bạn quay lại trang calculator theo hai cách Một cách giống cách bạn thấy, hiển thị Listing 49: Listing 49 Ánh xạ quay lại trang calculator Results Page /pages/results.jsp calculator /pages/calculator.jsp Listing 49 nói bạn trang kết (/pages/results.jsp) hành động trả calculator, tới trang máy tính (/pages/calculator.jsp) Nếu bạn muốn điều khơng cụ thể Listing 49, lại cụ thể so với kiểu chuyển tiếp tồn cục mà tơi đề cập từ đầu, bạn sử dụng Listing 50: Listing 50 Một ánh xạ khác quay lại trang máy tính từ nơi đâu trang/* /pages/* calculatorMain /pages/calculator.jsp Listing 50 cho phép bạn định nghĩa khu vực logic ứng dụng bạn có kết để áp dụng cho nơi Kết luận Hướng dẫn trình bày JSF cho thấy mơ hình thành phần Bởi JSF khung cơng tác thành phần Swing, SWT, hay AWT, làm cho việc phát triển ứng dụng web giống nhiều với việc phát triển GUI truyền thống giống với việc phát triển Web truyền thống Các ứng dụng viết JSF ngắn dễ hiểu bảo trì hơn, so với ứng dụng viết theo phong cách Mơ hình điển hình Hình có nhiều mối quan tâm đến JSF cộng đồng Java yêu cầu công việc phát triển lên cho phù hợp JSF 2, định hình, kết hợp chặt chẽ khái niệm Facelets, bổ sung thêm hỗ trợ Ajax tự nhiên, làm cho việc phát triển thành phần JSF dễ dàng JSF nâng cao đầu tư bạn vào JSF Mô hình có khả hồn trả phần trang nhờ Ajax, mà có nhờ cơng cụ Ajax4JSF Điều khơng phải để nói rằng, JSF khơng có đối thủ cạnh tranh Trong số mơ hình thành phần phía máy chủ, Tapestry trơng chắn mà khơng tương thích với Tapestry Wicket thú vị, không giành đủ động lực cho nhiều người để ý đến Sau đó, cịn có khung cơng tác Java phía máy chủ khơng thành phần Người ta nói rằng, Struts 2.x làm cơng việc to lớn việc cải thiện WebWork, số người mong đợi Struts 2.1.x mở cửa tới điều to lớn tốt đẹp hơn, Struts thực dựa WebWork Struts 1.x Spring MVC tiếp tục phát triển nhanh lựa chọn tốt bạn chọn khung cơng tác Web phía máy chủ khơng có thành phần GUI Cuối cùng, có hoạt động t phía khách để uỷ quyền cho dịch vụ máy chủ, Google Web Toolkit (GWT) phần mềm Adobe Flex (Kiến trúc khác với JSF, ứng dụng đích nhau.) Mỗi phần mềm có ưu mặt hạn chế riêng, tác động đến việc chấp nhận JSF Tuy nhiên, JSF có khả tiếp tục làm việc tốt tiêu chuẩn cho Java EE có cộng đồng động phía sau Nhu cầu JSF vượt nhu cầu Tapestry, Spring MVC, Java Flex, GWT JSF 2.0 thúc đẩy JSF tiến lên Phần loạt hướng dẫn đề cập đến vòng đời JSF làm việc với trình duyệt tính hợp lệ (validator), trình biến đổi (converter) , trình nghe pha, tính cao cấp khác JSF ... ví dụ ứng dụng máy tính bỏ túi trơng Xem Tải để lấy mã nguồn ứng dụng Hình Ứng dụng Máy tính bỏ túi, cuối Ứng dụng Calculator (Máy tính bỏ túi) Xây dựng Maven WTP Eclipse Môi trường xây dựng. .. tin faces- config.xml cho ứng dụng  Viết bean quản lý (còn gọi đối tượng mơ hình trình điều khiển)  Xây dựng khung nhìn cách sử dụng công nghệ JSP  Sử dụng thư viện thẻ tùy biến để xây dựng. .. khiển khác với JFS cung cấp Tạo ứng dụng: Tổng quan Để xây dựng ứng dụng Calculator JSF bạn cần phải:  Khai báo Faces Servlet thêm ánh xạ Faces Servlet tệp tin web.xml mô tả triển khai ứng dụng Web

Ngày đăng: 07/08/2014, 10:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan