intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Hướng Dẫn Chức Năng CRUD Với EJB3 Sử Dụng NetBeans 6.9.1 Server GlassFish 3.1 và JSF 2.0

Chia sẻ: Tran Thanh | Ngày: | Loại File: PDF | Số trang:25

247
lượt xem
62
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết hướng dẫn thao tác bằng EJB 3 để thêm , xóa , sửa dữ liệu tương tác với CSDL. Một số yêu cầu của bài viết: • Đang tìm hiểu EJB3, những người có khái niệm cơ bản về EJB • Đang tìm hiểu hoặc đã biết về JSF (1.2 hay 2.0, có thể sử dụng các framework hỗ trợ JSF như richfaces. . .) • Một số kiến thức cơ bản với NetBeans IDE.

Chủ đề:
Lưu

Nội dung Text: Hướng Dẫn Chức Năng CRUD Với EJB3 Sử Dụng NetBeans 6.9.1 Server GlassFish 3.1 và JSF 2.0

  1. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT HướngenDẫn ChứcNNăng CRUDNgVới EJB3 Sửguyen T T en T en T uye y guy uy Ngu N Dụng NetBeanso 6.9.1 ServerhoGlassFishC3.1o và ho h h an T an T an T an T a TC TC TC IT C T I I I I - NI - NI - NI - NI - NI JSFi 2.0 ai ai ai ai a nT en T en T en T en T uye guy guy guy guy N N N N Bài viết hướng dẫn thao tác bằng EJB 3 để thêm , xóa , sửa dữ liệu tương tác với CSDL. ho Tho ho ho an T an T an T Can a T C ột số yêu cầu của bàiTviết: M TC TC IT C NII NII NII NII NI ai - ai - ai - ai - ai - T en T en T en T en T n uye • Đang uy hiểu EJB3, những người có khái niệm cơ bảnNvềyEJB y y Ngu gu Ngu Ng tìm • Đang tìm hiểu hoặc đã biết về JSF (1.2 hay 2.0, có thể sử dụng các framework hỗ ho ho ho ho an T trợ JSF như richfaces.T .) an T an T an . a TC TC TC TC IT C I I I I - NI - NI cơ bản với NetBeans - NI - NI - NI ai • Một số kiến ithức ai IDE. ai ai a en T en T en T en T en T uy y y y y Ngu Ngu Ngu Ngu Chuẩn bị: ho Tho Tho Tho aT Tn an an tôi n khi thực hiện cácTthao tác, chúng ta cần cóTmột cơ sở dữ liệu. Ở đâyIT Casử dụng hệ a T C rước IC IC IT C NII - NI - NI - NI NI ai - ai - Tai Tai Tai nT T quản trị CSDLeMySQL để thiết lập Database. yn yen yen yen uye Ngu Ngu Ngu Ngu Tôi đã tạo 1 Database với tên là EJB gồm 2 bảng : Tbl_user và groups. Có quan hệ Nhiều – Một (Tbl_user : Many – an Tho One). Chúng sẽCan mô hình quan hệ như sau:Tho Tho có Tho Groups: Can Can a C IT C IT IT NIIT NIIT NI - NI NI ai - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T Một T en T T yen 1 – Mối quan hệ guyen– Nhiều giữa 2 bảng:uGroups và tbl_user. yen Hình uye gy Ngu Ngu N N Sauk hi đã có CSDL và xác định được mối quan hệ của các bảng, chúng ta sẽ dùng ho ho ho ho Netbeans IDE để tạo kết Can T an T an T an T nối giữa Netbeans với hệ quản trị CSDL. a TC TC TC IT C T I I I I NI NI NI NI NI ai - ai - ai - ai - ai - nT nT nT T T yen yen uye Tạo kết nốiggiữa NetBeans IDE và Nguye ye MySQL: Nu Ngu Ngu • o Khởi động Netbeans IDE ho ho ho h T an T an T an T Can a TC TC TC IT C • Chúng ta tiếp NII chọn Tabs Services NII tục NIIT I - NI - NI - - - Tai ai ai Tai ai • Ở đây yen T tạo kết nối giữa Netbeans IDE với MySQLgnênntôi sẽ không tạo lại guyen T en T n tôi đã uye uye guy gu N N N N nữa. Nếu bạn chưa tạo bạn có thể tạo 1 kết với vào MySQL ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  2. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - Database Tai - ta ai - • Bước tiếpTtheo là tạo kết nối giữaen T Netbeans IDE và mà cần thao tác nT T yen yen yen uye y Ngu Ngu Ngu Ngu như hình sau: • o Chuột phải vào Database New Connection. . . o o ho h h h an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu Hình 2 –oTạo kết nối mới với Database từ Netbeans ho ho ho Th an T an T an T • Sau khi chọn New an a T C Connection . . .một cửa sổ hiện thông tin các tham số cần thiết IT C TC TC IT C I I NII NI - NI - NI NI ai - ai - ai - để thiết n Taikết nối với Database en Takết nối. cần i lập T nT T n yen uye ye ye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu Hình 3 – Thiếtolập thông số kết nối giữa Netbeans vào Databaseho ho ho h T nT an T T Can Can • Các thông số NIIT Cahình là: a TC IT C trong T IIT II II - NI -N -N -N - ai i i ai i o n Tariver Name: Chọn Driverathích hợp với từng loại CSDL ở đây tôi chọn uyen Ta nT en T en T eD uye guy guy guy g N N N N Driver MySQL 5.1.13 (mặc định Driver của Netbeas là 5.0.6) o Host: Thônghtin tên server , do dùng máy cá nhân tạo nên để là Tho localhost ho o ho an T an T an T an a IT C IT C IT C IT C IT C hoặc I127.0.0.1 - NI - NI - NI - NI -N ai ai ai ai ai nT o n T ort: cổng kết nối mặcyen T của MySQL là 3306,en T lúc cài đặt bạn cóguyen T eP định nếu uye guy guy gu N N N N thay đổi cổng vui lòng điên thông tin thích hợp. o Database: tên oCSDL trong MySQL cầnokết nối. Tho Tho Th Th Can an an Can a IT C IT C IT C NIIT NIIT - NI NI NI ai - ai - ai - ai - ai nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  3. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - Ui - tên - mật khẩu Tai - cập ai - Password: n Taiđăng Tasername & nhập và truy vào on nT T en yen uye e ye y guy Ngu Ngu Ngu N MySQL • Đến đây bạn có thể bấm Ok để hoàn tất quá trình tạo kết nối giữa Netbeans và ho Tho ho ho an T an T an T MySQL. IIT Can a C TC TC IT C NIIT II II NI N N N ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu Tiếphotheo chúng ta sẽ tạo Project EJB. Chọn New Project Java EE Enterprise ho ho ho an T an T an T an T a TC TC TC IT C IT C Application: NII NII NII - NI NI ai - ai - ai - ai - ai T en T en T T T n yen yen uye y y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu Hìnhh4 – Tạo mới một Project ho EJB3 (1) ho To ho an T T an T an an a C C C C IT C NIIT NIIT NIIT NIIT NI ai - Tiếp tục bấm Nextai - - EJB3. SetTvị -trí ai - đặt Tên Project, ở đây itôi ai đăt tên la Project và Ta nT en T T yen en yen uye guy guy u Ngu đây tôi để mặc g NProject. Ở N định. N Folder chứ ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  4. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - Tạo mới Tai - 3 (2) en Tai - ai - Hình 5 – một Project EJB nT en T T en yen uye y guy y Ngu Ngu Ngu N Tiếp tục bấm next và chọn Server GlassFish 3 Java EE Version 6 (hoặc 5) Mặc địnhhNetbeans sẽ Check vào Tho 2 module là Web Module và EJB Module. BấmTho o ho tạo Finish an T an T an an a T C kết thúc. TC TC TC IT C NII để NII NII NII NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C T C ình 6- TC TC IT C NIIT NII H Tạo mới mộtNII NII - NI Proejct EJB3 (3) ai - ai - ai - ai - Tai nT T nT nT yen yen uye ye ye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  5. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - Class Entity -để - ai - ai xuống CSDL, iở Bây giờ việc tiếpTtheo là viết các ánh xạ đây ta có 2 bảng en T Ta nT en T yen yen uye guy y Ngu Ngu Nu tbl_user và groups vì thế chúng ta tạo 2 class Entity. Netbeans IDE hỗ trợ chúng ta tools g N để đưa table từ CSDL chuyển thành các class Java. ho ho ho Tho an T an T an T Can a TC TC T C Class IT C T… một cửa NII Đầu tiên, NII Chọn NII I - NI - NI chuột phải- vào EJB module Entity From Database - ai - Tai Tai Tai Tai en T n sổ hiện lên. guyônDataSource bạn chọngNew Data Source , điềnNtên en chọn kết nối cần Nguyen uye Ởe y guy và Nu N thiết sau đó bấm OK. Ở đây tôi đặt tên la jdbc/ejb3 và chọn kết nối với netbeans vừa tạo. Sau ho đã chỉ ra Datasource Tho tiếp theo là ở ô vuônghAvailable Table bạn chọn o o khi việc h những an T an T an T an a TC TC TC TC IT C I I I I - NI table cần chuyển thành Entity Class chọn Add> để đưa sang ô Selectedi - NI - NI - NI - NI Table. Ở đây tôi ai ai ai ai a nT nT nT en T en T uye chọn Add Nguyeđể Add 2 Table hiện Nguye gy guy All> tại thành Entity Class. Bấm uNext để tiếp tục. N N ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - Tạo Entity-Class ai - ai - Hình 6 – từ CSDL(1) ai nT en T en T en T T yen uye y guy y Ngu Ngu Ngu N Ở cửa sổ tiếp theo bạn sẽ cấu hình thông số như là Tên class, loại sinh ra, đặc biệt là bạn cầnTtạo 1 package để chứa cáchClass này. Ở đây tôi tạoT1 opackage với tên là : Tho ho o h an T an an an a TC T C giữ nguyên 2 dấu checkC IT C IT C T mặc định ở giai đoạn này. Hai dấu - NI com.jpa.entity . Chú- ý Inên I NI I - NI - NI - NI ai Tai Tai ai ai nT eT en T check vào Ngôynày có ý nghĩa là hệ thốngen tự tạo các NameQuery n 2 u en uye guy sẽ guy thực hiện truy vấn dựa uy g N N N trên các Field có trong Table đó. Dấu check thứ 2 Tạo Persistence Unit cho các Class. Persistence Unit cơ bản dùngTđể nhóm các Entity trong ho dụng lại với nhau. n Tho ứng ho ho nT nT n a a a a a IT C IT C IT C IT C IT C NI NI - NI NI - NI ai - ai - ai - Tai Tai nT T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  6. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho Tho ho an T aT T Hn Cn Can – Tạo Entity Classatừ CSDL(2) a T C ình 7 C IT C NIIT IIT IIT NII NI N N ai - - ai - ai - ai - Tai nT en T en T en T en uye Tiếp tục chọnyNext Tùy chỉnh Collect Type là List ( bạn có thể chọn theo type mà bạn uy y y Ngu Ngu Ngu Ng thích ở đây tôi chọn List). ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T Hình 8– TạouEntity Class từ CSDL(3)uy yen yen yen uye Ngu Ngu Ng Ng ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  7. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - tạo xong Tai - chứ các Class en Tai - xuất hiện, mở thử 1ntrong 2 class các bạn en Tai - - Tai Sau khi Package Entity nT en uye ye guy uy uy Ngu NameQuery được tạo g các câu lệnh ánh xạ các thuộc tính trong Class Ng N N và sẽ thấy các câu xuống các cột trong CSDL như @Column(name=”username”). ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu Hình 9– Entity Class o o o o Nn Ththế là ta đã đưa Tableachuyển thành Entity Classnviệc tiếp theo là thao tácan Th CSDL h h nT aT a hư với a C TC TC IT C IT C NIIT I I - NI Chuột phải vào EJB ai - NI - NI tên là - NI - sử dụng Session Bean. module. Chọn Session Bean, đặt ai ai ai ai nT en T en T en T en T uye guy trong Package com.DAO. Chọn Stateless Bean guy không cần Inteface( Nguy guy UserBean,N nằm N và N điểm mới của EJB 3.1). Sau đó click Finish để hoàn tất việc tạo Stateless Bean, hệ thống ho o ho ho 1 Th an T nT an T sẽ tự động sinh ra cho bạn an Class Stateless Bean vàaInterface sẽ sử dụng Annotation là a TC TC TC TC IT C I I I I - NI @LocalBean xác định Ibean này là Bean cụcabộ, Inếu muốn remote bạn icó thể tạo - NI - NI -N -N ai ai Ti ai a nT en T en T en T yen uye guy guchất demo tôi chỉ dừng lạiyở đây. guy gu Interface cho nó, do bài viết mang tính N N N N Tiếphotheo sau khi đã tạo thànhhcông class UserBean, mởho class này lên tiếp tục trong vùng o ho an T an T an T an T a TC T C chọn Persistence T CEntityManager. EntityManager sẽTC IT C I I uI I - NI màn hình code chuột NI - NIser - NI - NI - phải ai Tai Tai ai ai nT en T en T được tạo ra guyen với Annotation Persistenceuyen uye g Context để đưa Containeryquản lý EntityManager guy gu N N N N vào class này. ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  8. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu Hình 10- Tạo SessionBean Tho Tho ho ho an T an T an an a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  9. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T en T en T T yen yen uye Hình 11–yTạo EntityManager y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  10. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - Sau khi đã tạo en Tai - - phương thức Tai - ai - Ti EntityManager việc tiếp theoalà viết các để thực hiện Thêm – nT T yen en yen uye guy guy Ngu Ngu Sửa – XóaN N ho ho ho ho an T an T an T an T a C T C bo user TC C IT C //Tra ve danh sachIItoan NIIT NIIT NII NI N ai - ai - ai - ai - ai - nT nT nT T nT yen uye ye ye e y public Ngu Ngu Ngu Ngu List retrieveAllUsers() { ho return em.createNamedQuery("TblUser.findAll").getResultList(); ho ho ho T an T an T an T Can a TC TC TC IT C IT NII NII NII NI NI ai - ai - ai - ai - ai - } T nT nT nT T n yen uye ye ye ye Ngu Ngu Ngu Ngu //thuc hien add 1 user moi ho ho ho ho an Tpublic TblUser persistUser(TblUser user){ an T an T an T a C TC TC C IT C NIIT NIIT NII NII NI ai - ai - ai - ai - ai - nT nT nT en T T yen uye ye ye y Ngu Ngu Ngu Ngu em.persist(user); Tho ho ho ho an T T T an Can Can a C C IT C return user; NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu } //Thuc hien cap nhat 1 record user trong CSDL o o ho ho h h T T an T T Can Can Can a C IT C NIIT IIT NIIT IIT NI N N public TblUser iupdateUser(TblUser user){ - ai - a- ai - ai - ai nT T T T T yen yen yen yen uye Nguem.merge(user); Ngu Ngu Ngu return }o ho ho ho h an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu //Thuc xoa 1 record user trong CSDL ho ho ho ho an Tpublic void deleteUser(TblUser user){ an T an T an T a C TC TC C IT C NIIT NIIT NII NII NI ai - ai - ai - ai - ai - nT nT nT en T T yen uye em.remove(em.merge(user)); Nguye ye y Ngu Ngu Ngu } ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu xong Ngu Ngu thêm Nu tạo g Sau khi đã viết các phương thức cần thiết để thực hiện việc sửa xóa ta cần 1 class điều hướng các phương thức này ra JSF. Ở JSF các thông tin đưa ra View thường ho ho ho ho được chưa trong back bean n T 1 số giá trị resource an T ghi vào file Bundle.properties). an T an T a (trừ được a TC TC TC TC IT C I I I I - NI - NI - NI - NI - NI ai Để tạo back beanTcho JSF điều đầu tiên ta cần add Framework JSF n Taivào module Web en Tai ai ai 2.0 nT en T en uye e guy guy guy y Ngu EJB-war. N N N ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  11. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - Chuột phải vào n Tai - Web chọn Propertiesi - chọn Framework en Taihọn Add c- ai - module Select Ta nT T yen yen uye ye y Nu Ngu u Ngu Java Server gFaces Click Ok để add Framework g Web module. N vào click Ok ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C T C Thêm TC Web Module.NIIT C IT C Hình I12– Framework- JSF 2.0 vào NIIT I NII NI -N ai - - ai - Tai ai Tai nT en T T en yen yen uye guy guy Ngu Nu ta g Nsẽ tạo đưa N liệu ra Tiếp tục ta Back Bean để dữ ngoài JSF, trước khi thực hiện điều này cần edit 1 tí trang XHTML. Vào Tools Menu Templates Web XHTML Click Tho Tho Tho Tho chọn Open in Editor. IT Can an an an a IT C IT C IT C IT C NI NI NI NI NI ai - ai - ai - ai - ai - nT T T nT T yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  12. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu sửa Ngu Ngu Hình 12– Chỉnh templates XHTML. Sauk o open in Editor, template XHTML sẽ được hiển ho Việc tiếp theo là xóaTho bộ ho h hi n T thị. n toàn an T nT a Ca Ca a T C thay bằng IT C IT C NIIT NIIT NII và - NI NI ai - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  13. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - Tiếp tục save lại như thế đã thay thế Template- của - theo ý n Tai - ai - Tai ai XHTML ta muốn. Tiếp theo nT en T T yen yen uye e guy guy gu Ngu N N N vào file Web.xml chọn Tab XML tìm đoạn: Tho ho ho ho an T an T an T an a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT nT nT T nT yen Faces Servlet uye uye uye e y Ngu Ngu Ng Ng /faces/* Tho ho ho ho an T an T an T an a C IIT C C C IT C NIIT NIIT NIIT NI -N ai - ai - ai - ai - Tai T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu Thayobằng ho ho ho h nT an T an T an T a a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho Faces Servlet ho ho ho an T an T an T T Can a C TC TC IT C NIIT IIT NII NII NI N ai - ai - ai - ai - ai - /faces/* nT nT nT en T T yen uye ye ye y Ngu Ngu Ngu Ngu *.jsf ho ho ho ho an T an T an T T Can a C TC C IT C NIIT NIIT IIT NII NI N ai - ai - ai - ai - ai - nT nT T T T yen yen yen uye ye Ngu Ngu Ngu Ngu Bây giờ đã xong cấu hình cho JSF, tiếp tục ta sẽ tạo Back Bean cho JSF. Chuột phải vào Web o . . Tho ho ho h an T module chọn New . CanChọn JSF Managed Bean (Tnếu không tìm thấy chọnTOthers an an a TC TC TC IT C T I I NII I - NI JavaServerFace i - NIKhung bên phải JSFTManaged Bean). - NI NI ai - ai - Tai Tai Ta T n yen yen yen yen uye Ngu Ngu Ngu Ngu Đặt tên Bean này là UserController nằm trong Package com.ejb.Controller Scope chọn o Th Session. Tho ho ho an T an T an an a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - Annotation trướci - ai - Sau khi click Finish một Back bean được n T ra với 2 tạo a tên class mà nT en T en T T yen uye e guy guy guy Ngu @ManagedBean và @SessionScopeN N N ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  14. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT en T en T T yen yen uye Hình 13–NTạo JSF Managed Bean.guy guy Ngu Ngu N Tiếphotheo là đưa EJB moduleTvào Back bean , chuột phảiovào vùng code chọn Insert Code ho ho Th an T an T an Can a T C Chọn tiếp Call Enterprise BeanTC Txuất hiện chọn UserBeanT C No IT C một cửa NII sổ I I I - NI - NI - NI - NI - ai ai ai ai ai nT C en T en T nT en T Interface guylick ok ( do lúc này ta đã ykhông tạo Interface nêngởyđây ta chọn no uye ue guy gu N N N N interface). ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen n yen uye HìnhN14–e Gọi 1 EJB Bean. guy y Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  15. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - - từ EJB modulee1 Tai - ai - ai - gọi 1 EJBaiBean Sau khi dependency inject @EJB Tđược đặt trước Bean en T nT T yen yn yen uye y Ngu N khác biệt giữa EJB 3 và uEJB 2 nếu không u Ngu điều này là sự g Ng EJB vừa được gọi, dùng Annotation @EJB thì ta phải tạo InitialContext để lookup EJB module. ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu Hình 15- Dependency Inject EJB modue Tiếpho khai báo 1 biếnCuserho ho ho an T tục an T kiểu TblUser với hình T an thức truy cập là privaten T a , thực hiện a C TC TC IT C NIIT T I I II - NI cho thuộc tính này.aiĐiều này để cho bạn có ai - Nget và set giá trị - NI - NI các phương thức Taiget/set thể - Tai ai en T en T en T n en uye guy guy khởi tạo đối tượngNTblUser trong Constructoruy guy g mới cho một user. Tiếp theo chúngNta sẽ N N của Controller. ho ho ho ho an T an T an T an T a C C TC TC IT C NIIT NIIT user = new TblUser(); II NII NI N ai - ai - ai - ai - ai - nT T nT nT T yen yen uye ye ye Ngu chúng Nu Ngu Ngu làm là tạogcác hàm cần thiết trên controller Việc tiếp theo ta cần ho ho ho ho an T an T an T T Can a C // Lay ra danh sach thanh C C IT C NIIT vien goi tu DAO NIIT NIIT IIT NI N ai - ai - getUsers(){ ai - ai - ai - nT T T en T T public List yen yen yen uye y Ngu Ngu Ngu Ngu return userBean.retrieveAllUsers(); } ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT en T T T en yen yen uye // Lay thong y chi tiet cua mot thanh Nguy Ngu tin Ngu Ngu vien public TblUser getDetails(){ ho return user; ho ho ho an T an T an T an T a TC TC C C IT C NIIT NIIT I I - NI - NI NI } ai - ai - ai - ai ai nT en T T T T yen yen yen uye y Ngu Ngu Ngu Ngu //hien thi thong tin chi tiet cua thanh vien ho ho ho ho an T public String showDetails(TblUser user){ an T an T an T a TC TC TC C IT C NIIT NII I NII - NI NI ai - ai - ai - ai - Tai this.user =nuser; nT nT en T T yen uye ye ye y Ngu Ngu Ngu Ngu return "DETAILS"; } Tho ho ho ho an T an T an T an a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  16. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - //Tạo combobox icho ngạại dùng lạa chạn Tai - - ai - ai - Ta nT en T T yen yen yen uye y Ngu Ngu Ngu Ngu public javax.faces.model.SelectItem[] getGroupList() ho { ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT nT T T nT yen yen SelectItem[] options = null; uye uye e y Ngu Ngu Ngu Ng List grouplist = userBean.getAllGroups(); Tho ho ho ho an T an T an T an a C C C C IT C if (grouplist != null && grouplist.size() > 0) NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - T T T T T n yen yen yen yen uye { Ngu Ngu Ngu Ngu int i = 0; ho ho ho ho T an T an T an T Can a C TC C IT C NIIT NIIT NIIT NII NI ai - = i- - ai - ai - options Tanew SelectItem[grouplist.size()]; Tai nT en T T yen yen yen uye y Ngu Ngu Ngu Ngu for (Groups iGroup : grouplist) ho ho ho ho an T an T T T { Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT options[i++] = new SelectItem(iGroup,iGroup.getGroupname()); n T T T T yen yen yen uye ye Ngu Ngu Ngu Ngu } Tho ho ho ho T an T T an Can Can a C C IT C } NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T en yen yen yen uye returnyoptions; Ngu Ngu Ngu Ngu ho } ho ho ho T T an T an T Can Can a C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu Sau khi đã hoàn thành class Controller việc tiếp theo là ta phải tạo 1 class Convert để chuyển đổi kiểu dữ liệu Groups vì EL (Expression Language) không thể hiểu kiểu o liệu ho ho ho h dữ an T an T an T an T a TC T C bây giờ ta sẽ tạo 1 ClassC tên GroupsConverter và sẽ TC IT C T có I I I I - NI của Groups ( 1 entity) Inên - NI - NI - NI -N ai ai ai ai ai nT nT en T en T en T uye uye guy guy guy implementsgInteface Converter. N N N N Trong class này ta sử dụng @FacesConverter để chỉ ra class GroupsConverter convert ho Tho ho ho an T an T an T cho class Groups. Trong Can này ta cũng overrideClại 2 phương thức từ Interface a T class TC TC IT C T I I I I - NI - NI - NI - NI - NI ai i ai i i Converter là uyen Ta getAsObject và getAsString.ngetAsObject biến đổi uyen Ta một trường thành một đốiuyen Ta nT eT uye guy g g g N N N N tượng và getAsString. JSF cần hiển thị giá trị được chọn hiện tại nên nó dùng method getAsString để làm điều này và nó biến đổi một đối tượng thành một chuỗi ký tự . o ho ho ho h T T T T Can Can Can Can a IT C IT IT IT IT - NI - NI - NI - NI - NI Code của class nàyi sẽ như sau ai ai ai Tai Ta nT T en T en yen yen uye y y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  17. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu import com.jpa.entity.Groups; ho ho ho ho ain T an T an T an T mport javax.faces.application.FacesMessage; a C TC TC C IT C NIIT NIIT NII NII NI ai - ai - ai - ai - ai - nT nT nT T nT yen import javax.faces.component.UIComponent;e uye ye e y y Ngu Ngu Ngu Ngu import javax.faces.context.FacesContext; ho ho ho ho an T an T an T an T a T C import javax.faces.convert.Converter; TC TC C IT C NIIT NII NII NII NI ai - ai - ai - ai - ai - nT nT nT T T yen yen uye ye ye Ngu Ngu Ngu Ngu import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; ho ho ho ho T an T an T an T Can a C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - /** nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu * ho ho ho ho an T an T T T * @author Kency Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen */ uye y Ngu Ngu Ngu Ngu @FacesConverter(forClass=Groups.class) ho ho ho ho an T an T an T T Can a T C public class GroupsConverter implements Converter{ NIIT C TC IT C IIT NII NII NI N ai - ai - - ai - ai - Tai nT nT T T yen yen yen ye ye u Ngu Ngu Ngu Ngu private Groups iGroups; @Override ho ho ho ho T T an T an T Can Can a C C IT C NIIT IIT NIIT NIIT NI N ai - public Object getAsObject(FacesContext context,i UIComponent component,Tai - value) { - - ai - String Tai Ta nT T yen yen en yen uye guy gu gu Ngu N N N if(iGroups == null){ ho ho ho ho an T iGroups = new Groups(Integer.valueOf(value)); an T an T an T a C TC TC C IT C NIIT NIIT NII NII NI ai - ai - ai - ai - ai - nT nT nT en T T return iGroups; yen uye ye ye y Ngu Ngu Ngu Ngu }else{ Tho ho ho ho nT nT nT an a a a a C IT C IT C IT C IT C throw new ConverterException(new FacesMessage(String.format("Cannot convert %s to NIIT - NI - NI - NI NI ai - ai - i Tai Tai Groups", value))); Ta nT T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T } an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu }o ho ho ho h T T an T an T Can Can a C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  18. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT @Override NI ai - ai - ai - ai - ai - nT nT nT nT nT uye uye uye uye e y Ngu publicNg Ng Ng String getAsString(FacesContext context, UIComponent component, Object value) { ho return String.valueOf(((Groups) value).getGroupid()); Tho ho ho an T an T an T an a C TC IT C C IT C NIIT NIIT I - NI - NI NI ai - ai - ai - ai ai T en T en T T T n yen yen uye guy guy Ngu Ngu N N } ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T }// end classyen yen yen uye y gu Ngu Ngu Ngu N ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - - ta - - ai - Tai Groups Tai tiếp Table để hiểni thị Sau khi đã tạo 1 class Convert cho tục tạo danh sách Ta nT T yen yen yen yen uye Nu Ngu Ngu Ngu thành viên. g o Tho ho ho Đầuhtiên bạn tạo 1 file XHTML, sau đó bấm tổ hợp phím Ctrl + Shift + 8 Palette sẽ an T an T an T Can a TC T JSF chọn Table From NIIT C kéo ra ngoài vùng HTML code TC IT C I I I - NI hiện ra, bấm dấu cộng Iở - NI - NI - Entity -N ai ai ai ai ai nT en T en T en T en T uye guy guy guy guy N N N N ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T nT T T yen yen yen uye Hình 16 uye Ngu Ngu Ngu Ng – Tạo Bảng từ Entity Bây ho để xem được chi tiết của một thành viên, bạn chỉnh sửa code ở cột useridhnhư giờ ho ho o an T an T an T an T a TC TC TC TC IT C thành NII NII NII NII - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  19. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho Tho ho ho an T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C TC TC TC IT C NIIT I I I - NI - NI - NI - NI - Tai ai ai ai ai en T en T en T en T n uye guy guy guy guy N N N N ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - ai - ai - nT en T en T en T en T uye Giải thích Nguy này ta thấy ở commandLink thuộc tính ActionNsẽ y hàm ShowDetails vàuy y Ngu gu gọi code Ng truyền tham số item, tham số item chính là 1 đối tượng user và để xác định được đối tượng này ta sử dụng item.userid để lấy id và các thông ho của đối tượng này.aSau o ta ho ho h an T an T an T tin n T đó a TC TC TC TC IT C I I I I - NI dùng Browser gõ địa NI http://localhost:8080/EJB3-war/ListUser.jsf ( iở NIây tôi đặt tên - NI - NI - chi -đ ai ai ai ai a nT en T nT en T en T uye uye guy gTa sẽ được như hình: Nguy guy của file XHTML vừa rồi là ListUser). N N N ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T nT nT an T Hình Ca – Bảng thông tin thànhaviên tạo từ Entity a C C C IT C 17 NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu Vậyhta đã hoàn thành việc tạo ho T danh sách thành viên từ Tho Database, tiếp theo là sửa Tho tin thông o an T Can an an a TC TC TC IT C TViệc này cũng khá đơn giản, quay lại với class UserController ta - NI thành viên từ Database. I I I I - NI - NI - NI - NI ai ai ai ai ai nT viết thêm 1 guyen để thực hiện việc cập uyen Tthông tin thành viênguyen T hàm T en T g nhật như sau: uye guy N N N N public void updateUser(){ ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT NI ai - - - ai - ai - Tai Tai user = userBean.updateUser(user); nT T T yen yen yen yen uye Ngu Ngu Ngu Ngu FacesContext context = FacesContext.getCurrentInstance(); ho ho ho ho an T context.addMessage(null,T T an T Can new FacesMessage(FacesMessage.SEVERITY_INFO, Can a C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T en en yen uye "Chucymung ban", "Cap nhat thanhucong!")); gy y gu Ngu Ngu N N } ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
  20. NII II NII NII II N N ai - ai - ai - ai - ai - T T T en T T yen yen yen yen guy u Ngu Ngu Ngu N ho ho ho ho an T an T an T an T a C C C TC IT C NIIT NIIT NIIT NII NI ai - - - quay về n Tai - ai - Ti kết để trang iupdate Tiếp tục viết thêmamột hàm liên có thể dành sách thành viên Ta nT T yen yen yen uye e guy Ngu Ngu Ngu N với code sau đây: Tho ho ho ho an T an T an T an public String list() a C C C C IT C NIIT NIIT NIIT NIIT NI ai - ai - ai - ai - ai - nT T T T nT yen yen yen uye e y { Ngu Ngu Ngu Ngu System.out.println("###LIST###"); ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI return "LIST"; i - N ai - ai - ai - ai - a T T T T T n yen yen yen yen uye Ngu Ngu Ngu Ngu } ho ho ho ho an T an T an T an T a C C TC C IT C NIIT NIIT NIIT NII NI ai - ai - ai - - ai - Entity như n Tai nT T T T Sau đó ta tạo 1etrang userDetails và sử dụng Form from ye hình: yn yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T an T T T Can Can a C C IT C NIIT NIIT IIT IIT NI N N ai - ai - ai - ai - ai - nT T T en T T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T T Can Can a C C IT C NIIT IIT NIIT IIT NI N N ai - - ai - ai - ai - Tai nT T T T yen yen yen yen uye Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ình trangntruy- vấn thành viênai - ai - H 18 – Tạo chi tiết ai nT en T eT T T yen yen uye y guy Ngu Ngu Ngu N Ở đây tương tự như tạo Table từ entity nhưng khác là phương thức để quản lý cho trang này ho phương thức getDetailsh( lưu ý với các từ khóa get/set JSF tự động bỏ đi vàho là chuyển o ho an T an T an T an T a TC T C thành lowercase). NIIT C TC IT C II cụm từ sau từ khóa get/set II II NI i-N i-N i-N i- ai - a a a a nT en T en T en T T yen uye y y y Ngu Ngu Ngu Ngu Việc tiếp theo là tạo file Face-config.xml để cấu hình liên kết giữa 2 trang ListUser và userDetails. o o o o h h h h an T an T an T an T Ca C C C C NIIT NIIT NIIT NIIT NIIT Bạn cũng có thể cấu- hình chúng thông qua Tai - cũng nằm trong Face-config.xml thông XML ai - ai - ai - ai nT T T T yn yen yen yen uye qua navigationerule của JSF . Ngu Ngu Ngu Ngu ho ho ho ho an T an T an T an T a C C C C IT C NIIT NIIT NIIT NIIT - NI ai - ai - - ai - Tai Tai nT T en T yen yen yen uye y Ngu Ngu Ngu Ngu ho ho ho ho an T T an T an T Can a C C C IT C NIIT IIT NIIT NIIT NI N ai - ai - ai - ai - ai - nT T T T T yen yen yen yen uye Ngu Ngu Ngu Ngu
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2