1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU CÔNG NGHỆ JSF 2.0 VÀ ICEFACES ĐỂ XÂY DỰNG ỨNG DỤNG QUẢN LÝ HỒ SƠ HÀNH CHÍNH TRÊN NỀN LIFERAY PORTAL

262 238 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 262
Dung lượng 9,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TÊN ĐỀ TÀI: Nghiên cứu công nghệ JSF 2.0 và ICEFaces để xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal II.. NHIỆM VỤ VÀ NỘI DUNG  Nhiệm vụ: Nghiên cứu công nghệ JS

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM

KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU CÔNG NGHỆ JSF 2.0

Đoàn Bảo Trung

TP.HỒ CHÍ MINH, tháng 8 năm 2011

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM

KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU CÔNG NGHỆ JSF 2.0

Tô Thị Thùy Trang Đoàn Bảo Trung

Trang 3

CÔNG TRÌNH HOÀN TẤT TẠI TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM



Giáo viên hướng dẫn: TS Phạm Văn Tính

Phản biện: Công ty cổ phần phần mềm Sài Gòn mới

Luận văn kỹ sư được bảo vệ tại HỘI ĐỒNG CHẤM LUẬN VĂN KỸ

SƯ TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM ngày 31 tháng 08 năm 2011

Trang 4

NHIỆM VỤ LUẬN VĂN CỬ NHÂN

I TÊN ĐỀ TÀI: Nghiên cứu công nghệ JSF 2.0 và ICEFaces để xây dựng ứng

dụng quản lý hồ sơ hành chính trên nền Liferay Portal

II NHIỆM VỤ VÀ NỘI DUNG

 Nhiệm vụ: Nghiên cứu công nghệ JSF 2.0 và ICEFaces để xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

 Nội dung: Dựa trên nền tảng các công nghệ đã tìm hiểu xây dựng module quản

lý hồ sơ lao động trong hệ thống quản lý hồ sơ hành chính một cửa cho chính phủ điện tử trên nền Liferay Portal

III NGÀY GIAO NHIỆM VỤ: 01/04/2011

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 15/08/2011

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS PHẠM VĂN TÍNH

Ngày / / KHOA CNTT

Ngày / / CHỦ NHIỆM CHUYÊN NGÀNH

Ngày / /

CÁN BỘ HƯỚNG DẪN

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập-Tự Do-Hạnh Phúc

Bộ Giáo Dục và Đào Tạo

Trường ĐH NÔNG LÂM TpHCM

Họ tên sinh viên: PHẠM VĂN NAM

Ngày tháng năm sinh: 02/01/1988

Chuyên ngành: Mạng máy tính truyền thông

Phái: Nam

Nơi sinh: Gia Lai Ngành: Công nghệ thông tin

Họ tên sinh viên: NGUYỄN THỊ BÍCH THỦY

Ngày tháng năm sinh: 28/06/1989

Chuyên ngành: Mạng máy tính truyền thông

Phái: Nữ

Nơi sinh: Đồng Tháp Ngành: Công nghệ thông tin

Họ tên sinh viên: TÔ THỊ THÙY TRANG

Ngày tháng năm sinh: 19/09/1898

Chuyên ngành: Mạng máy tính truyền thông

Phái: Nữ

Nơi sinh: Đồng Tháp Ngành: Công nghệ thông tin

Họ tên sinh viên: ĐOÀN BẢO TRUNG

Ngày tháng năm sinh: 01/12/1989

Chuyên ngành: Mạng máy tính truyền thông

Phái: Nam

Nơi sinh: Tiền Giang Ngành: Công nghệ thông tin

Trang 5

Sau thời gian nghiên cứu luận văn, chúng em cũng đã đạt được những kết quả nhất định Để đạt được điều này thì ngoài sự cố gắng và nổ lực của từng thành viên trong nhóm, chúng em còn nhận được rất nhiều sự quan tâm và chỉ bảo của nhà trường, quý thầy cô, gia đình, bạn bè, …

Chúng em xin chân thành cám ơn Khoa Công nghệ thông tin Đại học Nông Lâm Thành phố Hồ Chí Minh đã tạo điều kiện cho chúng em thực hiện đề tài này

Chúng em chân thành cám ơn quý thầy cô là những người đã tận tình chỉ bảo và truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian qua

Chúng em xin chân thành biết ơn Thầy Phạm Văn Tính đã tận tình hướng dẫn, chỉ bảo và giúp đỡ chúng em trong suốt quá trình thực hiện đề tài nghiên cứu này

Chúng em chân thành cám ơn Công ty cổ phần phần mềm Sài Gòn mới đã tận tình giúp đỡ chúng em trong suốt quá trình nghiên cứu và thực hiện đề tài này

Ngoài ra chúng em còn xin gửi lời cảm ơn tới nhà Trường, văn phòng Khoa Công nghệ thông tin và bạn bè là những người đã chân thành giúp

đỡ chúng em trong thời gian qua

Trong quá trình thực hiện đề tài nghiên cứu, mặc dù các thành viên

đã cố gắng nỗ lực thực hiện nhưng chúng em chắc không thể tránh được những sai sót nhất định Kính mong sự thông cảm và tận tình chỉ bảo của quý Thầy Cô

Sinh viên thực hiện:

Phạm Văn Nam Nguyễn Thị Bích Thuỷ

Tô Thị Thuỳ Trang Đoàn Bảo Trung

LỜI CẢM ƠN

Trang 6

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhI SVTH: Nam, Thuy, Trang, Trung

DANH SÁCH CHỮ VIẾT TẮT

JDK Java Development Kit

Bộ nhân phát triển Java

API Application Programming Interface

Giao diện lập trình ứng dụng

HTML HyperText Markup Language

Ngôn ngữ đánh dấu siêu văn bản

XML EXtensible Markup Language

Ngôn ngữ đánh dấu mở rộng

DCOM Distributed Component Object Model

Mô hình đối tượng thành phần kết hợp

HTTP HyperText Transfer Protocol

Giao thức truyền tải siêu văn bản

CPĐT Chính phủ điện tử

ICT Information and Comunication Technologies

Thông tin và truyền thông

LAN Local Area Network

Mạng nội bộ

UBND Uỷ ban nhân dân

CNTT Công nghệ thông tin

CSDL Cơ sở dữ liệu

HQSLDB HyperSQLDataBase

Hệ quản trị CSDL hướng đối tượng

IBM DB2 Hệ quản trị CSDL của hãng IBM

J2EE Java 2 Platform Enterprise Edition

WSRP Web Services for Remote Portlets

IOC International Olympic Committee

HQT CSDL Hệ quản trị CSDL

JSTL JavaServer Pages Standard Tag Library

RIA Rich Internet Applications

Trang 7

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhII SVTH: Nam, Thuy, Trang, Trung

DANH MỤC CÁC HÌNH

Hình 3 1Portlet container thi hành   7 

Hình 3 2Mô hình xử lý request  9 

Hình 3 3Renderer parameter   11 

Hình 3 4Resource Request Handling Sequence   14 

Hình 3 5Vòng đời xử lý của request   16 

Hình 3 6 Mô hình kiến trúc JSF   26 

Hình 3 7Mô hình Faces lifecycle   28 

Hình 3 8Mô hình portlet lifecycle   29 

Hình 3 9Mô hình Faces lifecycle trong portlet 1   29 

Hình 3 10Mô hình Faces lifecycle trong portlet 2   29 

Hình 3 11Màn hình đăng nhập của Liferay   31 

Hình 3 12Giao diện trang chủ   31 

Hình 3 13Màn hình chọn loại Liferay Project   32 

Hình 3 14Màn hình xóa Page   35 

Hình 3 15Màn hình hộp thoại khi chọn xóa Page   35 

Hình 3 16Màn hình chọn xóa Page   35 

Hình 3 17 Chọn Configuration   37 

Hình 3 18Màn hình cấu hình navigate   37 

Hình 3 19Màn hình customize navigate   38 

Hình 3 20Mô hình xử lý trong JSF   40 

Hình 3 21Vòng đời xử lý request của JSF   41 

Hình 3 22Server-side UI component tree.   42 

Hình 3 23Áp dụng giá trị của request.   43 

Hình 3 24Xảy ra lỗi khi conversion và validation.   43 

Hình 3 25Cập nhật thuộc tính của Model.   44 

Hình 3 26Gọi logic tuỳ chỉnh ứng dụng.   45 

Hình 3 27Hiển thị kết quả trả về và lưu lại trạng thái   45 

Hình 3 28Kết quả hiển thị   48 

Hình 3 29Mô hình thiết kế Model – View – Controller   53 

Hình 3 30 Màn hình bắt đầu.   55 

Hình 3 31 Màn hình câu hỏi trắc nghiệm.   55 

Hình 3 32 Màn hình tổng kết điểm.   55 

Hình 3 33Sơ đồ các màn hình của ứng dụng trắc nghiệm.   55 

Trang 8

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhIII SVTH: Nam, Thuy, Trang, Trung

Hình 3 34Màn hình “Bắt đầu” thi trắc nghiệm   57 

Hình 3 35Màn hình hiển thị câu hỏi đầu tiên   58 

Hình 3 36Màn hình câu hỏi trắc nghiệm tiếp theo.   58 

Hình 3 37Màn hình hiển thị câu hỏi cuối cùng.   58 

Hình 3 38Màn hình kết quả thi trắc nghiệm.   59 

Hình 3 39Kiến trúc cơ bản của ICEFaces-enabled   64 

Hình 3 40Kiến trúc ICEFaces   65 

Hình 3 41Mô hình Direct-to-DOM   65 

Hình 3 42Direct-to-DOM Rendering Via Ajax Bridge   66 

Hình 3 43Synchronous and Asynchronous Updates   66 

Hình 3 44Server-initiated Rendering (Ajax Push)   66 

Hình 3 45Partial Submit – Intelligent Form Processing   67 

Hình 3 46Giao diện Project ICEFaces mới tạo.   73 

Hình 3 47 Deploy ICEFaces portlet bằng ant   76 

Hình 3 48: Thông báo deploy portlet thành công   76 

Hình 3 49: Kết quả tạo portlet ICEFaces   76 

Hình 3 50CSS trực tiếp cho component   77 

Hình 3 51Kết quả khi dùng CSS trực tiếp   77 

Hình 3 52File main.css   77 

Hình 3 53Khai báo jsf css resource   77 

Hình 3 54Kết quả dùng Class CSS JSF   78 

Hình 3 55Khai báo CSS qua thẻ link   78 

Hình 3 56Khai báo IDCSS   78 

Hình 3 57 Áp dụng ID CSS lên component   78 

Hình 3 58File css chính của liferay theme   79 

Hình 3 59Cấu hình css cho portlet   80 

Hình 3 60Màn hình cấu trúc thư mục   83 

Hình 3 61Màn hình qui định navigate   84 

Hình 3 62Màn hình tạo outcome   84 

Hình 3 63Màn hình nhập tên cho outcome   84 

Hình 3 64Màn hinh tạo thu muc resource-actions   89 

Hình 3 65Màn hình tạo file default.xml   90 

Hình 3 66Màn hình tạo file cấu hình phân quyền   90 

Hình 3 67Màn hình tạo file portlet.properties   92 

Hình 3 68Mô hình xử lý Ajax Push  94 

Trang 9

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhIV SVTH: Nam, Thuy, Trang, Trung

Hình 3 69Màn hình JSF Life-cycle   96 

Hình 3 70Màn hình ví dụ sử dụng Standar Converter   98 

Hình 3 71Màn hình ví dụ sử dụng Standar Converter   98 

Hình 3 72 Mô hình kiến trúc RTF Template   102 

Hình 3 73 Chức năng các lớp trong Lucene   119 

Hình 3 74 Mô tả giao diện   121 

Hình 3 75Tìm kiếm tất cả trong Lucene   121 

Hình 3 76Tìm kiếm bất kỳ trong Lucene   121 

Hình 3 77Sử dụng Liferay Service Builder tạo file service.xml   121 

Hình 3 78 Menu quản trị Liferay   131 

Hình 3 79 Đánh lại chỉ mục trong Lucene   132 

Hình 3 80 Xoá bộ nhớ đệm   132 

Hình 4 1Mô hình use case user   136 

Hình 4 2Mô hình use case admin   137 

Hình 4 3 Mô hình use case chuyên viên thụ lý   137 

Hình 4 4Lược đồ activity của cập nhật đăng ký sử dụng lao động   140 

Hình 4 5Lược đồ activity của tra cứu đăng ký sử dụng lao động   142 

Hình 4 6Lược đồ activity của in đăng ký sử dụng lao động   143 

Hình 4 7Lược đồ activity của in danh sách đăng ký sử dụng lao động   143 

Hình 4 8Lược đồ activity của xem danh sách đăng ký sử dụng lao động   144 

Hình 4 9Lược đồ activity của cập nhật tăng giảm lao động   147 

Hình 4 10Lược đồ activity của tra cứu tăng giảm lao động   148 

Hình 4 11Lược đồ activity của in tăng giảm lao động   149 

Hình 4 12Lược đồ activity của in danh sách tăng giảm lao động   150 

Hình 4 13Lược đồ activity của xem danh sách tăng giảm lao động   151 

Hình 4 14Lược đồ activity của cập nhật nội quy lao động   152 

Hình 4 15Lược đồ activity của tra cứu nội quy lao động   154 

Hình 4 16Lược đồ activity của in nội quy lao động   155 

Hình 4 17Lược đồ activity của in danh sách nội quy lao động   155 

Hình 4 18Lược đồ activity của xem chi tiếtnội quy lao động   156 

Hình 4 19Lược đồ activity cập nhật thẩm định đề xuất   158 

Hình 4 20Lược đồ activity tra cứu thẩm định đề xuất   159 

Hình 4 21Lược đồ activity in thẩm định đề xuất   160 

Hình 4 22Lược đồ activity in danh sách thẩm định đề xuất   160 

Hình 4 23Lược đồ activity chi thiết thẩm định đề xuất   161 

Trang 10

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhV SVTH: Nam, Thuy, Trang, Trung

Hình 4 24 Lược đồ activity của cập nhật thang lương bảng lương   163 

Hình 4 25Lược đồ activity của tra cứu thang lương bảng lương   165 

Hình 4 26Lược đồ activity của in thang lương bảng lương   166 

Hình 4 27Lược đồ activity của in danh sách thang lương bảng lương  166 

Hình 4 28Lược đồ activity của xem danh sách thang lương bảng lương   167 

Hình 4 29Lược đồ activity của cập nhật thỏa ước lao động   169 

Hình 4 30Lược đồ activity của tra cứu thỏa ước lao động   170 

Hình 4 31Lược đồ activity của in thỏa ước lao động   171 

Hình 4 32Lược đồ activity của in danh sách thỏa ước lao động   172 

Hình 4 33Lược đồ activity của xem chi tiết thỏa ước lao động   172 

Hình 4 34Mô hình cơ sở dữ liệu   173 

Hình 4 35Tìm chính xác từ khóa   174 

Hình 4 36Tìm tiếng Vệt không dấu   174 

Hình 5 1 Tìm kiếm quốc gia cơ bản   181 

Hình 5 2Tìm kiếm quốc gia nâng cao   181 

Hình 5 3Thêm mới quốc gia   181 

Hình 5 4 Xoá, chỉnh sửa quốc gia   182 

Hình 5 5 Tìm kiếm dân tộc cơ bản   182 

Hình 5 6 Tìm kiếm dân tộc nâng cao   182 

Hình 5 7 Thêm mới dân tộc   182 

Hình 5 8 Xoá chỉnh sửa dân tộc   182 

Hình 5 9 Tìm kiếm thành phố cơ bản   183 

Hình 5 10 Tìm kiếm thành phố nâng cao   183 

Hình 5 11 Thêm mới thành phố   183 

Hình 5 12 Xoá, chỉnh sửa thành phố   183 

Hình 5 13 Tìm kiếm quận huyện cơ bản   184 

Hình 5 14 Tìm kiếm quận huyện nâng cao   184 

Hình 5 15 Thêm mới quận huyện   184 

Hình 5 16 Xoá chỉnh sửa quận huyện   184 

Hình 5 17 Tìm kiếm phường xã cơ bản   185 

Hình 5 18 Tìm kiếm phường xã nâng cao   185 

Hình 5 19 Thêm mới phường xã   185 

Hình 5 20 Xoá chỉnh sửa phường xã   185 

Hình 5 21 Tìm kiếm đường cơ bản   186 

Hình 5 22 Tìm kiếm đường nâng cao   186 

Trang 11

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhVI SVTH: Nam, Thuy, Trang, Trung

Hình 5 23 Thêm mới đường   186 

Hình 5 24 Xoá chỉnh sửa đường   186 

Hình 5 25 Tìm kiếm ngày lễ cơ bản   187 

Hình 5 26 Tìm kiếm ngày lễ nâng cao   187 

Hình 5 27 Thêm mới ngày lễ   187 

Hình 5 28 Xoá chỉnh sửa ngày lễ   187 

Hình 5 29 Tìm kiếm nghề nghiệp cơ bản   187 

Hình 5 30 Tìm kiếm nghề nghiệp nâng cao   188 

Hình 5 31 Thêm mới nghề nghiệp   188 

Hình 5 32 Xoá chỉnh sửa nghề nghiệp   188 

Hình 5 33 Tìm kiếm mẫu mã phát sinh cơ bản   188 

Hình 5 34 Tìm kiếm mẫu mã phát sinh nâng cao   188 

Hình 5 35 Thêm mới mẫu mã phát sinh   189 

Hình 5 36 Xoá chỉnh sửa mẫu mã phát sinh   189 

Hình 5 37 Tìm kiếm class phát sinh mã cơ bản   189 

Hình 5 38 Tìm kiếm class phát sinh mã nâng cao   189 

Hình 5 39 Thêm mới class phát sinh mã   189 

Hình 5 40 Xoá chỉnh sửa class phát sinh mã   189 

Hình 5 41Màn hình thêm mới hồ sơ sử dụng lao động   190 

Hình 5 42Màn hình chỉnh sửa nội dung hồ sơ sử dụng lao động   190 

Hình 5 43 Màn hình xem chi tiết hồ sơ đăng ký sử dụng lao động   191 

Hình 5 44Màn hình tra cứu cơ bản hồ sơ đăng ký sử dụng lao động   191 

Hình 5 45Màn hình tra cứu nâng cao hồ sơ đăng ký sử dụng lao động   191 

Hình 5 46Màn hình thêm mới hồ sơ tăng giảm lao động   192 

Hình 5 47Màn hình chỉnh sửa hồ sơ tăng giảm lao động   192 

Hình 5 48 Màn hình xem chi tiết hồ sơ đăng ký tăng giảm lao động   193 

Hình 5 49Màn hình tra cứu cơ bản hồ sơ tăng giảm lao động   193 

Hình 5 50Màn hình tra cứu nâng cao hồ sơ tăng giảm lao động   193 

Hình 5 51Màn hình thêm mới nội quy lao động   194 

Hình 5 52Màn hình chỉnh sửa nội quy lao động   194 

Hình 5 53 Màn hình xem chi tiết nội quy lao động   194 

Hình 5 54Màn hình tra cứu cơ bản hồ sơ nội quy lao động   195 

Hình 5 55Màn hình tra cứu nâng cao hồ sơ nội quy lao động   195 

Hình 5 56Màn hình thêm mới thang lương bảng lương   195 

Hình 5 57Màn hình chỉnh sửa thang lương bảng lương   196 

Trang 12

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhVII SVTH: Nam, Thuy, Trang, Trung

Hình 5 58 Màn hình xem chi tiết thang lương bảng lương   196 

Hình 5 59Màn hình tra cứu cơ bản thang lương bảng lương   196 

Hình 5 60Màn hình tra cứu nâng cao thang lương bảng lương   197 

Hình 5 61Màn hình thêm mới hồ sơ thỏa ước lao động   197 

Hình 5 62 Màn hình xem chi tiết thoả ước lao động   197 

Hình 5 63Màn hình tra cứu cơ bản hồ sơ thỏa ước lao động   198 

Hình 5 64Màn hình tra cứu nâng cao hồ sơ thỏa ước lao động   198 

Hình 5 65Màn hình thêm mới thẩm định đề xuất   198 

Hình 5 66Màn hình chỉnh sửa thẩm định đề xuất   199 

Hình 5 67 Màn hình xem chi tiết thẩm định đề xuất   199 

Hình 5 68Màn hình tra cứu cơ bản hồ sơ thẩm định đề xuất   199 

Hình 5 69Màn hình tra cứu nâng cao hồ sơ thẩm định đề xuất   200 

Hình 1 Chạy file cài đặt SDK 1   1 

Hình 2 Chạy file cài đặt SDK 2   1 

Hình 3 Cấu hình biến môi trường Java 1   2 

Hình 4 Cấu hình biến môi trường Java 2   2 

Hình 5 Cấu hình biến môi trường Java 3   2 

Hình 6 Cấu hình biến môi trường Java 4   2 

Hình 7 Cấu hình biến môi trường Java 5   3 

Hình 8 Cấu hình biến môi trường Java 6   3 

Hình 9 Cấu hình biến môi trường Java 7   3 

Hình 10 Cấu hình biến môi trường Ant 1   4 

Hình 11 Cấu hình biến môi trường Ant 2   4 

Hình 12 Cấu hình biến môi trường Ant 3   4 

Hình 13 Cấu hình biến môi trường Ant 4   4 

Hình 14 Cấu hình biến môi trường Ant 5   5 

Hình 15 Cấu hình biến môi trường Ant 6   5 

Hình 16 Cấu hình biến môi trường Ant 7   5 

Hình 17 Eclipse flash screen   6 

Hình 18 Install new eclipse plugin   6 

Hình 19 Add new eclipse plugin site   6 

Hình 20 Install Liferay plugin SDK   7 

Hình 21 Liferay SDK configuration 1   7 

Hình 22 Liferay SDK configuration 2   7 

Hình 23 Liferay SDK configuration 3   8 

Trang 13

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhVIII SVTH: Nam, Thuy, Trang, Trung

Hình 24 Configure Liferay Server 1   8 

Hình 25 Configure Liferay Server 2   8 

Hình 26 Configure Liferay Server 3   9 

Hình 27 Chọn chức năng cấu hình biến môi trường   9 

Hình 28 Cấu hình biến môi trường   9 

Hình 29 Cấu hình server   10 

Hình 30 Màn hình đăng nhập của Liferay   11 

Hình 31 Giao diện chính của liferay   11 

Hình 32 Màn hình tạo Liferay Project mới   14 

Hình 33 Màn hình nhập thông tin cho Liferay project   15 

Hình 34 Màn hình chọn loại Liferay Project   15 

Hình 3 81Download plugin ICEFaces cho Eclipse   16 

Hình 3 82Tạo thêm plugin ICEFaces vào Eclipse   16 

Hình 3 83Chấp nhận cài đặt Plugin   17 

Hình 3 84Tạo project ICEFaces   17 

Hình 3 85Chọn cấu hình ICEFaces   18 

Hình 3 86Download thư viện ICEFaces   18 

Hình 3 87Chọn loại thư viện để download.   19 

Hình 3 88Chọn thư viện cho project   19 

Hình 3 89Cấu hình ICEFaces   19 

Hình 3 90Cấu trúc project ICEFaces   20 

Hình 3 91Giao diện Project ICEFaces mới tạo.   20 

Trang 14

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhIX SVTH: Nam, Thuy, Trang, Trung

TÓM TẮT

TÊN ĐỀ TÀI

NỘI DUNG NGHIÊN CỨU

Đề tài tập trung nghiên cứu các công nghệ Liferay Portal, JSF 2.x (JavaServer Faces 2.x), ICEFaces, Lucene, RTF template, PostgreSQL Dựa trên nền tảng các công nghệ đã tìm hiểu xây dựng module quản lý hồ sơ lao động trong hệ thống quản

lý hồ sơ hành chính một cửa cho chính phủ điện tử trên nền Liferay Portal

HƯỚNG TIẾP CẬN VÀ GIẢI QUYẾT VẤN ĐỀ

 Phân tích yêu cầu, quy trình giải quyết hồ sơ một cửa cho chính phủ điện tử,

từ đó xây dựng các mô hình giải pháp “Module quản lý hồ sơ lao động trong

hệ thống quản lý hồ sơ hành chính một cửa cho chính phủ điện tử”

 Lựa chọn các công nghệ sẽ sử dụng cho từng mục đích

 Dựa vào phân tích đánh giá điểm mạnh và yếu sẽ quyết định sử dụng công nghệ nào

 Triển khai cài đặt mô hình chính phủ điện tử với các công nghệ đã chọn lọc

 Kết hợp vớiCông ty cổ phần phần mềm Sài Gòn mới và các sở ban ngành trong thành phố để triển khai mô hình

MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC

VỀ PHẦN CƠ SỞ LÝ THUYẾT

 Đã tìm hiểu và nắm bắt được các vấn đề sau:

 Công nghệ Liferay Portal

 Nắm khái quát được các vấn đề liên quan đến chính phủ điện tử

 Tham gia trực tiếp vào quá trình xây dựng và triển khai phần mềm “Hồ Sơ Hành Chính” một cửa cho chính phủ điện tử của Công ty Cổ phần phần mềm Sài Gòn mới

 Nắm vững quy trình giải quyết hồ sơ một cửa của chính phủ điện tử

 Áp dụng các công nghệ đã tìm hiểu xây dựng “Module quản lý hồ sơ lao động một cửa cho chính phủ điện tử”

 Triển khai hoàn chỉnh hệ thống mô phỏng cho mô hình Chính Phủ Điện Tử với bài toánquản lý hồ sơ lao động một cửa trên nền Liferay Portal

Trang 15

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhX SVTH: Nam, Thuy, Trang, Trung

MỤC LỤC

LỜI CẢM ƠN   V 

DANH SÁCH CHỮ VIẾT TẮT   I 

DANH MỤC CÁC HÌNH   II 

TÓM TẮT   IX 

MỤC LỤC   X 

Chương 1  MỞ ĐẦU   1 

1.1  LÝ DO CHỌN ĐỀ TÀI 1 

1.2  MỤC TIÊU ĐỀ TÀI 1 

1.3  PHẠM VI NGHIÊN CỨU 1 

1.3.1  VỀ THỜI GIAN 1 

1.3.2  VỀ KHÔNG GIAN 2 

1.3.3  VỀ NỘI DUNG 2 

Chương 2  TỔNG QUAN   3 

2.1  ĐẶT VẤN ĐỀ 3 

2.2  SƠ LƯỢC VỀ CHÍNH PHỦ ĐIỆN TỬ 3 

2.3  TÌNH HÌNH ỨNG DỤNG CPĐT TRONG NƯỚC TA 4 

2.4  KẾT LUẬN 5 

Chương 3  NỘI DUNG NGHIÊN CỨU   6 

3.1  PORTAL 6 

3.1.1  KHÁI NIỆM PORTAL 6 

3.1.2  SỰ KHÁC NHAU CƠ BẢN GIỮA PORTAL VÀ WEBSITE 6 

3.1.3  KHÁI NIỆM PORTLET 6 

3.1.4  SO SÁNH GIỮA PORTLET VÀ SERVLET 7 

3.1.5  PORTLET CONTAINER 7 

3.1.6  PORTLET INTERFACE 8 

3.1.7  VÒNG ĐỜI CỦA PORTLET 8 

3.2  LIFERAY 8 

3.2.1  TỔNG QUAN LIFERAY 8 

3.2.2  JSR168 VÀ JSR286 9 

3.2.3  JSR314 15 

3.2.4  JSR301 VÀ JSR329 25 

3.2.5  CÀI ĐẶT LIFERAY 30 

3.2.6  CẤU HÌNH LIFERAY 33 

Trang 16

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhXI SVTH: Nam, Thuy, Trang, Trung

3.3  JSF 2.0 38 

3.3.1. KHÁI NIỆM 38 

3.3.2. ĐẶC ĐIỂM 39 

3.3.3. CÁC THÀNH PHẦN CHÍNH 40 

3.3.4. VÒNG ĐỜI XỬ LÝ REQUEST 41 

3.3.5. PHẠM VI CỦA BEAN 45 

3.3.6. JSF Scope 46 

3.3.7. MÔ HÌNH MVC JSF 53 

3.3.8. VÍ DỤ 55 

3.4  ICEFACES 63 

3.4.1  GIỚI THIỆU ICEFACES 63 

3.4.2  ƯU ĐIỂM CỦA ICEFACES 63 

3.4.3  KIẾN TRÚC ICEFACES 64 

3.4.4  MỘT SỐ KHÁI NIỆM 65 

3.4.5  MỘT SỐ THẺ CƠ BẢN CỦA ICEFACES 67 

3.4.6  CÀI ĐẶT PLUGIN ICEFACES VÀO ECLIPSE 72 

3.4.7  TẠO PROJECT ICEFACES 72 

3.4.8  TẠO ICEFACESPORTLET 73 

3.5  HƯỚNG DẪN CHUNG VỀ CÁC CÔNG NGHỆ 76 

3.5.1  CSS 76 

3.5.2  ICEFACES NAVIGATION 83 

3.5.3  NAVIGATE TRONG PORTLET 85 

3.5.4  XỬ LÝ SỰ KIỆN 86 

3.5.5  RESOURCE ACTION 89 

3.5.6  AJAX PUSH 94 

3.5.7  CONVERTER VÀ VALIDATOR 96 

3.6  RTF TEMPLATE 102 

3.6.1  KIẾN TRÚC 102 

3.6.2  HƯỚNG DẪN SỬ DỤNG 103 

3.7  LUCENE 119 

3.7.1  CHỨC NĂNG CÁC LỚP CỦA THƯ VIỆN LUCENE 119 

3.7.2  CÁC ĐỐI TƯỢNG TRONG LUCENE 120 

3.7.3  SỬ DỤNG TÌM KIẾM LUCENE TRONG LIFERAY 120 

3.7.4  LƯU Ý KHI TÌM KIẾM LUCENE TRONG LIFERAY 132 

Chương 4ỨNG DỤNG ICEFACES XÂY DỰNG CHÍNH PHỦ ĐIỆN TỬ   133 

Trang 17

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn TínhXII SVTH: Nam, Thuy, Trang, Trung

4.1  MÔ TẢ BÀI TOÁN 133 

4.1.1  BÀI TOÁN 133 

4.1.2  QUY TRÌNH ĐĂNG KÝ HỒ SƠ LAO ĐỘNG 133 

4.2  PHÂN TÍCH BÀI TOÁN 135 

4.2.1. MÔ HÌNH USECASE 135 

4.2.2. PHÂN TÍCH CƠ SỞ DỮ LIỆU 173 

4.3  NHỮNG VẤN ĐỀ GẶP PHẢI VÀ GIẢI PHÁP 173 

4.3.1. TÌM CHỮ IN HOA BẰNG LUCENE TRONG LIFERAY 173 

4.3.2. BỎ DẤU TIẾNG VIỆT KHI TÌM KIẾM BẰNG LUCENE 174 

4.3.3. CLEAR FORM 176 

4.3.4. PHÂN BIỆT GIỮA SINGLE SUBMIT VÀ PARTIAL SUBMIT 178 

Chương 5KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN   180 

5.1  KẾT QUẢ ĐẠT ĐƯỢC 180 

5.1.1. KIẾN THỨC 180 

5.1.2. SẢN PHẨM 180 

5.2  HƯỚNG PHÁT TRIỂN 200 

Chương 6TÀI LIỆU THAM KHẢO   201 

6.1  SÁCH THAM KHẢO 201 

6.2  TRANG WEB THAM KHẢO 201 

Trang 18

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính1 SVTH: Nam, Thuy, Trang, Trung

Chương 1 MỞ ĐẦU

1.1 LÝ DO CHỌN ĐỀ TÀI

Trong thời đại đổi mới ngày nay sự phát triển về kinh tế và xã hội ngày càng tăng cao, đòi hỏi hệ thống pháp luật cũng phải được Nhà Nước quan tâm phát triển và áp dụng chặt chẽ hơn, yêu cầu mọi văn bản giấy tờ phải hợp thức hóa pháp luật Vì vậy nhu cầu xử lý thủ tục hành chính trong bộ máy Nhà Nước là rất lớn Tuy nhiên quy trình xử lý hành chính còn nhiều hạn chế làm mất nhiều thời gian, không đáp ứng được nhu cầu, lợi ích của nhân dân, gây trì trệ nền kinh tế và

xã hội dẫn tới khoảng cách của nhân dân và chính phủ ngày càng xa, gây mất lòng tin của nhân dân Bộ máy chính quyền tại các tỉnh, thành phố và các quận huyện hiện nay đã được trang bị tin học tương đối hoàn chỉnh, trình độ tin học của nhân dân cũng nâng cao, đã tạo điều kiện thuận lợi áp dụng công nghệ thông tin – truyền thông vào quá trình xử lý hành chính của bộ máy nhà nước để các cơ quan chính phủ đổi mới, làm việc hiệu lực, hiệu quả và minh bạch hơn, cung cấp thông tin, phục vụ tốt hơn cho người dân, doanh nghiệp và các tổ chức, đồng thời tạo điều kiện thuận lợi hơn cho người dân thực hiện quyền dân chủ của mình trong việc tham gia quản lý nhà nước Điều này trở thành động lực để ngành công nghệ thông tin áp dụng, phát triển các công nghệ mới của thế giới sao cho phù hợp, xây dựng các phần mềm hỗ trợ quá trình xử lý thủ tục hành chính của Nhà Nước được nhanh chóng, thuận tiện và rõ ràng hơn Hiện nay có rất nhiều tổ chức đã xây dựng và triển khai phần mềm hỗ trợ chính phủ trong quá trình xử lý hồ sơ trên các nền tảng công nghệ như: JSP servlet, Portal, JSF, ICEFaces,…

1.2 MỤC TIÊU ĐỀ TÀI

Nghiên cứu các công nghệ Liferay Portal, JSF, ICEFaces, Lucene… Kết hợp với Công ty cổ phần phần mềm Sài Gòn Mới xây dựng module quản lý hồ sơ lao động của hệ thống quản lý hồ sơ hành chính một cửa cho Chính Phủ Điện Tử triển khai đến các cơ sở ban ngành trực thuộc TP HCM

Các chức năng xây dựng trong module quản lý hồ sơ lao động bao gồm:

 Quản lý đăng ký sử dụng lao động

 Quản lý tăng giảm lao động

 Quản lý đăng ký nội quy lao động

 Quản lý thẩm định đề xuất

 Quản lý thang lương, bảng lương

 Quản lý thỏa ước lao động

1.3 PHẠM VI NGHIÊN CỨU

1.3.1 VỀ THỜI GIAN

Đề tài được thực hiện trong khoảng thời gian từ 01/04/2011 đến 15/08/2011 Trong thời gian làm luận văn luôn phân tích và triển khai khi có thay đổi về yêu cầu

Trang 19

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính2 SVTH: Nam, Thuy, Trang, Trung

1.3.2 VỀ KHÔNG GIAN

Đề tài được thực hiện tại Công ty cổ phần phần mềm Sài Gòn Mới dưới

sự hướng dẫn của TS Phạm Văn Tính, khoa Công nghệ Thông tin, Đại học Nông Lâm TP Hồ Chí Minh

1.3.3 VỀ NỘI DUNG

Đề tài tập trung nghiên cứu về công nghệ Liferay Portal và ICEFaces, và một số công nghệ khác như Lucene, RTF Template… Để xây dựng module quản lý hồ sơ lao động của hệ thống quản lý hồ sơ hành chính một cửa cho Chính Phủ Điện Tử

Trang 20

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính3 SVTH: Nam, Thuy, Trang, Trung

Chương 2 TỔNG QUAN

2.1 ĐẶT VẤN ĐỀ

Ngày nay, việc xây dựng hệ thống Chính Phủ Điện Tử là một trong những mục tiêu quan trọng trong công cuộc cải cách thủ tục hành chính, nhằm nâng cao hiệu quả hoạt động của Chính phủ, giúp người dân và doanh nghiệp làm việc với các cơ quan, Chính phủ nhanh chóng thuận tiện, tiết kiệm và hiệu quả hơn Tuy nhiên, đó cũng là một thách thức to lớn để có thể thiết lập hệ thống thông tin thống nhất, có tính liên kết cao, mang tính dùng chung trong bộ máy Nhà Nước

Hệ thống Chính Phủ Điện Tử đòi hỏi phải đáp ứng rất nhiều yêu cầu khác như quản lý tập trung các dịch vụ chính phủ điện tử, điều khiển các quy trình nghiệp

vụ, hỗ trợ hàng đợi, cung cấp đa giao thức kết nối, xây dựng hệ thống cổng thông tin điện tử, bảo mật, …

2.2 SƠ LƯỢC VỀ CHÍNH PHỦ ĐIỆN TỬ

Khái niệm CPĐT:

Chính Phủ Điện Tử (e-Government) là tên gọi của một chính phủ mà mọi hoạt động của nhà nước được "điện tử hóa", "mạng hóa" Tuy nhiên, chính phủ điện tử không đơn thuần là máy tính, mạng Internet; mà là sự đổi mới toàn diện các quan

hệ (đặc biệt là quan hệ giữa chính quyền và công dân), các nguồn lực, các quy trình, phương thức hoạt động và bản thân nội dung các hoạt động của chính quyền trung ương và địa phương, và ngay cả các quan niệm về các hoạt động đó

CPĐT là ứng dụng công nghệ thông tin và truyền thông (ICT) để các cơ quan của chính quyền từ trung ương và địa phương đổi mới, làm việc có hiệu lực, hiệu quả và minh bạch hơn Cung cấp thông tin, dịch vụ tốt hơn cho người dân, doanh nghiệp và các tổ chức, tạo điều kiện thuận lợi hơn cho người dân thực hiện quyền dân chủ và tham gia quản lý Nhà nước

Chức năng CPĐT

Mặc dù còn có những quan niệm khác nhau, song có thể hiểu một cách đơn giản: CPĐT là chính phủ hoạt động hiệu lực, hiệu quả hơn, cung cấp dịch vụ tốt hơn trên cơ sở ứng dụng công nghệ thông tin – truyền thông

CPĐT với các đặc trưng

 Thứ nhất, CPĐT đã đưa chính phủ tới gần dân và đưa dân tới gần chính phủ

 Thứ hai, CPĐT làm minh bạch hóa hoạt động của chính phủ, chống tham nhũng, quan liêu, độc quyền

 Thứ ba, CPĐT giúp chính phủ hoạt động có hiệu quả trong quản lý và phục vụ dân (cải cách hành chính và nâng cao chất lượng dịch vụ công)

Mục tiêu CPĐT

 Tạo môi trường kinh doanh tốt hơn

 Khách hàng trực tuyến, không phải xếp hàng

 Tăng cường sự điều hành có hiệu quả của chính phủ và sự tham gia rộng rãi của người dân

 Nâng cao năng suất và tính hiệu quả của các cơ quan chính phủ

Trang 21

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính4 SVTH: Nam, Thuy, Trang, Trung

 Nâng cao chất lượng cuộc sống cho các cộng đồng vùng sâu vùng xa

Lợi ích CPĐT

Lợi ích của CPĐT là đáp ứng mọi nhu cầu của công dân bằng việc nâng cao chất lượng hoạt động của bộ máy chính quyền từ trung ương tới cơ sở như quản lý nhân sự, quy trình tác nghiệp, v.v CPĐT đem lại kết quả những thuận tiện, như cung cấp dịch vụ một cách hiệu quả và kịp thời cho người dân, doanh nghiệp, các

cơ quan và nhân viên chính phủ Đối với người dân và doanh nghiệp, CPĐT là sự đơn giản hóa các thủ tục và tăng tính hiệu quả của quá trình xử lý công việc Đối với chính phủ, CPĐT hỗ trợ quan hệ giữa các cơ quan của chính quyền nhằm đảm bảo đưa ra các quyết định một cách chính xác và kịp thời

Các dạng giao dịch của CPĐT

Có bốn dạng giao dịch CPĐT:

 Chính phủ với Công dân (G2C)

 Chính phủ với Doanh nghiệp (G2B)

 Chính phủ với người lao động (G2E)

 Chính phủ với Chính phủ (G2G)

2.3 TÌNH HÌNH ỨNG DỤNG CPĐT TRONG NƯỚC TA

Tuy còn những hạn chế nhất định, sau bốn năm thực hiện, cùng với sự cố gắng của các bộ, ngành, UBND các tỉnh, thành phố trong việc ưu tiên ứng dụng CNTT trong quản lý Nhà Nướcđã đạt được những kết quả đáng ghi nhận Tạo ra một phương thức làm việc mới có sử dụng công nghệ thông tin trong các cơ quan hành chính Nhà Nước, nâng cao hiệu quả làm việc của cán bộ công chức Nhà Nước Nhiều cơ quan Nhà Nước đã chuyển từ điều hành thủ công truyền thống sang điều hành qua mạng máy tính Lần đầu tiên thiết lập được hệ thống thông tin điện tử trong cả nước, hình thành hệ thống thông tin điện tử của Chính phủ, bao gồm trung tâm tích hợp dữ liệu của các bộ, các tỉnh, mạng cục bộ (LAN) của mỗi cơ quan thuộc cơ cấu bên trong của bộ, tỉnh, mạng diện rộng liên kết các hệ thống tin học của bộ, tỉnh Trong đó điểm hội tụ của toàn hệ thống thông tin điện tử của chính phủ là cổng thông tin điện tử Chính phủ được khai trương và đưa vào vận hành ngày 9-9-2005

Hệ thống thông tin điện tử của các bộ, tỉnh đã vận hành các phần mềm ứng dụng tin học hóa quản lý hành chính nhà nước và cung cấp thông tin phục vụ lãnh đạo của bộ, tỉnh và Thủ tướng Chính phủ Hơn 25 nghìn văn bản quy phạm pháp luật được cập nhật và công bố trên Cổng thông tin điện tử Chính phủ Hơn 300 hệ thống thông tin điện tử được cài đặt tại các bộ, tỉnh, trong đó 35% hệ thống thông tin đã được vận hành trong bộ máy hành chính Hơn 60% số cán bộ công chức biết

sử dụng thư điện tử hành chính (dạng gov.vn) và khai thác mạng internet

Về cơ bản, các hệ thống thông tin đã bắt đầu cung cấp thông tin phục vụ trực tiếp cho công tác chỉ đạo điều hành của các cơ quan cấp bộ, tỉnh Những kết quả của Ðề án 112 kết hợp những kết quả đạt được của Ðề án 169 là những yếu tố cơ bản để triển khai giai đoạn II tin học hóa quản lý hành chính Nhà nước và góp phần quan trọng trong việc hiện đại hóa nền hành chính điện tử của nước ta

Trang 22

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính5 SVTH: Nam, Thuy, Trang, Trung

2.4 KẾT LUẬN

Trước các nhận định đánh giá về tình hình chính phủ như trên, nhóm thực hiện luận văn đã kết hợp với Công ty cổ phần mềm Sài Gòn mới đi sâu tìm hiểu thực tế quy trình xử lý hồ sơ hành chính một cửa cho CPĐT nói chung và cụ thể là quy trình xử lý hồ sơ lao động Tiến hành triển khai module quản lý hồ sơ lao động của

hệ thống quản lý hồ sơ hành chính một cửa cho CPĐT trên nền Liferay Portal

Trang 23

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính6 SVTH: Nam, Thuy, Trang, Trung

Chương 3 NỘI DUNG NGHIÊN CỨU

3.1 PORTAL

3.1.1 KHÁI NIỆM PORTAL

Portal là một hệ thống hoạt động trên Web, định danh và xác thực người dùng đăng nhập, từ đó sẽ cung cấp một giao diện web để người dùng dễ dàng truy cập, khai thác thông tin và dịch vụ cũng như thao tác, tùy biến các công việc của mình một cách nhanh chóng và đơn giản

Theo Portlet Specification thì: “một portal là một ứng dụng web chung cung cấp sự cá nhân hóa, đăng nhập một lần, tích hợp nội dung từ nhiều nguồn và sau đó tổ chức, trình bày trong một hệ thống thông tin Sự tập hợp là hành động tích hợp nội dung từ nhiều nguồn khác nhau trong một trang web.”

3.1.2 SỰ KHÁC NHAU CƠ BẢN GIỮA PORTAL VÀ WEBSITE

 Xây dựng hệ thống Portal thay vì Website bởi vì hệ thống Portal cần xây dựng có những ưu điểm so với Website có cùng chức năng như sau:

 Hệ thống Portal tạo ra các Website, các Website này có thể tùy biến trực quan (cả về giao diện và dữ liệu), giúp cho người phát triển Website, người quản trị website và người dùng Website có thể xây dựng, quản lý và sử dụng chúng một cách dễ dàng, thuận tiện

 Các module trong Portal có tính độc lập cao, hoạt động không ảnh hưởng tới các module khác

 Người dùng Portal có khả năng truy cập thông tin có được từ nhiều nguồn

dữ liệu khác nhau

3.1.3 KHÁI NIỆM PORTLET

 Portlet là các thành phần web dùng lại được với mục đích hiển thị thông tin liên quan cho người dùng cổng điện tử.Các ứng dụng cho portlet bao gồm việc hiển thị thư điện tử,các báo cáo thời tiết,các diễn đàn thảo luận

 Các chuẩn Portlet nhằm cho nhà phát triển phần mềm tạo ra portlets mà có thể cắm vào bất cứ cổng điện tử nào có hỗ trợ các chuẩn đó, dùng để biểu diễn (present) dữ liệu và chức năng của nhiều trình ứng dụng trên một trang web Các Portlet bao gồm lớp trình bày (presentation layer) và cũng liên kết với các nguồn dữ liệu back-end Mỗi nhà sản xuất lại có một cách gọi Portlet khác nhau (Portlet, gadgets, blocks,web modules, web parts) Nhiều nhà sản xuất đã có các Portlet dùng để kết nối với các hệ thống của công ty (ví dụ SAP, Siebel,…) cũng như dùng cho việc cộng tác (collaboration) và các chức năng khác

 Tương tự như servlet,portlet là một web component được dùng để triển khai vào trong một portlet container, tạo ra nội dung động Về mặt công nghệ, portlet là một class viết theo chuẩn giao diện javax.portlet.Portlet interface

và được đóng gói, triển khai trong một file war và trong một portlet container

Trang 24

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính7 SVTH: Nam, Thuy, Trang, Trung

3.1.4 SO SÁNH GIỮA PORTLET VÀ SERVLET

 Portlet có những điểm giống servlet:

 Được quản lí bởi một container chuyên dụng

 Khả năng xử lý request và sinh ra nội dung động

 Vòng đời được quản lí bởi container

 Làm việc với client thông qua mô hình request/response

 Portlet có những điểm khác servlet:

 Portlet chỉ tạo ra những mảnh nội dung chứ không tạo ra một trang web hoàn chỉnh

 Portlet không có URL trực tiếp

 Portlet không bị bó buộc vào nội dung tạo ra Nội dung tạo ra có thể là html/text hoặc WML

 Portlet có thể tồn tại nhiều lần trong một portal

3.1.5 PORTLET CONTAINER

Portlet container chạy các Portlet và cung cấp cho chúng môi trường thực thi

cần thiết Portlet container bao gồm các Portlet và quản lý chu trình sống của chúng Portlet container nhận các yêu cầu từ Portal và thực thi các yêu cầu trên những Portlet được chứa bởi nó Portlet container không chịu trách nhiệm kết hợp nội dung sản sinh bởi các Portlet Trách nhiệm đó thuộc về Portal Hình 2.5 dưới đây thể hiện kiến trúc Portal điểm hình

Hình 3 1Portlet container thi hành Cách làm việc của Portlet container:

 Một người dùng thông qua ứng dụng client (ví dụ trình duyệt web) sau khi

đã được chứng thực, đưa ra 1 yêu cầu HTTP đến cổng điện tử Ứng dụng Portal nhận các yêu cầu của client

 Ứng dụng Portal khi đó phát ra lời gọi tới Portlet container cho tất cả các Portlet trên trang hiện tại

 Portlet container nắm giữ các preference của người dùng (user’s preferences) khi đó gọi các Portlet thông qua porlet API yêu cầu phân mảnh đánh dấu (markup fragment) từ mỗi porlet và trả fragment này cho Portal

 Portal kết hợp đầu ra của các Portlet trên một trang trả về cho client/user

Trang 25

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính8 SVTH: Nam, Thuy, Trang, Trung

3.1.6 PORTLET INTERFACE

Portlet Interface là phần chính của Portlet API Tất cả các Portlet phải

implement interface này(Portlet) hoặc là extends lớp đã implement interface Portlet

Thư viện hàm ứng dụng Portlet API có lớp GenericPortlet đã hiện thực lớp giao diệnPortlet và cung cấp các chức năng cơ bản Các lập trình viên có thể extends trực tiếp hoặc gián tiếp lớp GenericPortlet Mỗi một Portlet đều mở rộng từ lớp

thực thi giao diện Portlet Giao diện Portlet gồm các phương thức sau đây:

 init(): phương thức dùng để khởi tạo Portlet Phương thức này chỉ được gọi

1 lần sau khi tạo mẫu Portlet Phương thức này dùng để tạo các nguồn tài nguyên, các đối tượng mà Portlet dùng về sau

 destroy(): xác định Portlet không cần tiếp tục hoạt động để giải phóng tài nguyên,cập nhật dữ liệu mà Portlet đó sở hữu

 processAction(): thông báo cho Portlet rằng người sử dụng đã gây ra một hành động lên Portlet

 Render(): tạo ra mã lệnh ngôn ngữ đánh dấu để hiển thị nội dung Portlet

Để bổ sung các phương thức trên, một lớp GenericPorlet được cung cấp cài đặt phương thức render() và ủy thác gọi các phương thức đặc biệt để hiển thị Portlet dựa trên các mode của nó Người phát triển có thể mở rộng lớp GenericPorlet và cài đặt như nhiều phương thức khác như những phương thức render này Đó là các phương thức:

 doView(): Được gọi bởi phương thức render() khi Portlet ở chế độ View

 doEdit(): Được gọi bởi phương thức render() khi Portlet ở chế độ Edit

 doHelp(): Được gọi bởi phương thức render() khi Portlet ở chế độ Help

3.1.7 VÒNG ĐỜI CỦA PORTLET

Một Portlet được quản lý thông qua 1 chu trình sống được định nghĩa chặt chẽ, làm thế nào chúng được tải về (load), trình bày và khởi tạo, làm thế nào chúng nắm giữ các yêu cầu từ phía máy khách, và làm thế nào chấm dứt 1 dịch

vụ Chu trình sống của Portlet được gói gọn lại thông qua các phương thức init(), processAction(), render(), destroy() của interface Portlet

3.2 LIFERAY

3.2.1 TỔNG QUAN LIFERAY

Liferay là Java portlet container đầu tiên, hỗ trợ hai chuẩn portlet là JSR168

và JSR286.Liferay rất linh hoạt, dùng JavaEE 5 servlet và có thể chạy với các servlet container thông dụng như ache Tomcat, GlassFish, JBoss, Jetty,Jonas, WebSphere, WebLogic, và Resin

Liferay có thể kết nối tới hầu hết các hệ quản trị CSDL như IBM DB2, Apache

Derby, Firebird, Hypersonic, HSQLDB, IBM Informix, Ingres, MySQL, Oracle,PostgreSQL, SAP DB, Microsoft SQL Server, và Sybase

Trang 26

feray dùng

ĩa là các poner JSR-286MVC, Java

c ứng dụng lại cho họ

mà không cnghĩa các po

ử dụng các hnào có dùn

là hệ thốnggười dùng, đ

Hình 3

ồ sơ hành chí

SVTH: Na

o phép sử ding (AOP)

ng liferay đề

h thích hợpistributed v

ục đích chuđộc lập vàothể di chuy

có bất kỳ thaortlet API đhàm API n

ều có thể th

và local cac Người lập

ác lớp cach

e, có cả spr

ác công nghrãi các framMVCPortle

uẩn hóa các

o các máy chyển các por

ay đổi mã

để tiện cho vnày để tương

m nền Đốiăng hỗ trợ c

et

c thành phầ

hủ cổng thôrtlet liên tụcviệc tùy biế

g tác và đư với các ITcác ứng dụntăng chi ph

uest

tal

on of controSpring Hầ

o portlet nh

ần pluggablông tin Điề

c từ máy ch

ến, phát triểược deploye

Trang 27

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính10 SVTH: Nam, Thuy, Trang, Trung

 Lợi ích của JSR 168

Cổng thông tin tích hợp các thành phần dựa trên các tiêu chuẩn mới sẽ cho phép khả năng tương tác độc lập của các nhà cung cấp giải pháp cổng thông tin và cho phép các doanh nghiệp để dễ dàng sử dụng cổng thông tin nền tảng cho việc cung cấp an toàn của các dịch vụ Web cá nhân hoá và nội dung triển khai cổng thông tin tổng hợp giữa nhiều bên trong và bên ngoài

Đối với phát triển:Tiêu chuẩn mới sẽ cho phép các nhà phát triển để tái sử

dụng các phương pháp tích hợp hiện có để bổ sung dữ liệu nhanh hơn, ứng dụng và dịch vụ từ nhiều phía sau nguồn Phát triển và các nhà cung cấp phần mềm độc lập (ISV) sẽ được hưởng lợi từ thời gian phát triển và giảm chi phí

từ đặc điểm kỹ thuật dựa trên Java API và mở rộng khả năng cho cổng thông tin J2EE

Đối với khách hàng:Doanh nghiệp sẽ được hưởng lợi từ hiệu quả cao hơn và

tỷ lệ hoàn vốn từ cá nhân, nội dung tổng hợp có thể được gửi từ các nền tảng cổng thông tin để người dùng cuối cùng từ vô số nguồn tin trước đây khó khăn để tích hợp

Đối với các nhà tích hợp:Dễ dàng tích hợp và tập hợp nội dung cho khách

hàng Portal của họ, tạo điều kiện cho việc cung cấp các dịch vụ web

 Mục tiêu của JSR 168

 Xác định môi trường thời gian chạy, hoặc container portlet, cho portlet

 Xác định các API giữa portlet container và các portlet

 Cung cấp cơ chế để lưu trữ dữ liệu tạm thời và liên tục cho các portlet

 Cung cấp một cơ chế cho phép các portlet để bao gồm các servlet và JSP (JavaServer Pages)

 Xác định một bao bì của các portlet để cho phép triển khai dễ dàng

 Cho phép tính di động trong số nhị phân portlet JSR 168 cổng thông tin

 Run JSR 168 portlet như các portlet từ xa bằng cách sử dụng các dịch vụ Web cho Portlet từ xa (WSRP) giao thức

 Hạn chế của JSR 168 là JSR 168 không hỗ trợ một vài tính năng sau:

 Inter-portlet communication

 Serving non-html resources (pdf, doc, images etc.)

 Contributing javascript or css to <head>, using cookies

 Proper support for common web frameworks

 Chạy trên nền Java 5 nhưng vẫn liên kết với J2EE 1.4, WSRP 2.0

 Portlet coordination: Public render parameters, Chia sẻ trạng thái session trên ứng dụng, Portlet events

Trang 28

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính11 SVTH: Nam, Thuy, Trang, Trung

 Portlet coordination được dùng để chia sẽ dữ liệu trong ứng dụng web ở

phạm vi application scope, chia sẻ trạng thái giữa các portlet, đồng thời gửi

và nhận sự kiện từ portlet khác

Hình 3 3Renderer parameter

 Tham số renderTham số render được dùng để chia sẻ trạng thái hiển thị

giữa các portlet Việc sử dụng tham số render để tránh trường hợp người dùng cuối thay đổi hoặc chuyển hướng trình duyệt web và đánh dấu trang nếu portal lưu trữ các tham số trong URL

 Cho phép cập nhật trạng thái thể hiện trên những ứng dụng portlet khác

 Giới hạn giá trị của chuỗi

 Định nghĩa trong file portlet.xml

Ví dụ: một portlet Weather muốn hiển thị thời tiết của một thành phố được

chọn Vì vậy sử dụng tham số render để mã hóa tham số zip code Người dùng có thể thêm portlet vào một trang có zip code là một trong những tham

số render đã được khai báo

 Share session stateChia sẻ dữ liệu người dùng trong phạm vi session độc lập với trạng thái của những ứng dụng web

Trang 29

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính12 SVTH: Nam, Thuy, Trang, Trung

 Dùng portal để quản lý, không dùng portlet container

 Định nghĩa trong file portlet.xml

 Phải hiện thực Serializable và có giá trị binding đến JAXB 2.0

 Interface HttpSessionBindingListener hỗ trợ nhưng:

 Sự kiện được gọi lại trong portlet

void processEvent(EventRequest req, EventResponse resp){ Event event = req.getEvent();

if ( event.getName().equals(“foo”) ){

String payload = (String) event.getValue();

}

Trang 30

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính13 SVTH: Nam, Thuy, Trang, Trung

 Để gửi một sự kiện đi ta thực hiện việc khai báo:

<event-definition>

<qname xmlns:x=”http:example.com/events”>x:foo.bar</qname>

private String street;

private String city;

public void setStreet(String s) {street = s;}

public String getStreet() { return street;}

public void setCity(String c) { city = c;}

public String getCity() { return city;}

} void processEvent(EventRequest req, EventResponse resp){

Address sampleAddress = new Address();

 Những sự kiện động không khai báo thì cũng được cho phép

 Portal/portlet container hoạt động như trung gian

 Portal hoặc portlet container chỉ có thể phát ra sự kiện

 Có thể được tạo ra từ processAction và processEvent

 Trạng thái được phép thay đổi trong phương thức proccessEvent()

 Resource serving

Một portlet muốn thực hiện resource serving thông qua URL thì cần phải

thực thi interface ResourceServingPortletvới phương thức serveResource

Đối với các cuộc gọi resource serving trong portal thì chỉ nên hành động như một proxy để truy cập tài nguyên và được xem như một phép logic

Trang 31

sử dụng dữ

ilter

ter là một pcủa portlet nse hoặc là

y đổi hay thnse

<p

i trạng thái

số vào URL

và responeliệu nhị phâ

phần có thểrequest và một responhích ứng vớ

phép lọc nhược định ng

portlet-nam lifecycle>E /filter-mapp

he mở rộng

hững thôngxml

portlet>

expiration-c expiration-t

ồ sơ hành chí

SVTH: N

urce Reque

quest handlông tạo ra g

L được đặt

e trên heade

ân hoặc chỉ

tái sử dụnportlet resp

ne đến một

ới các requ

hững thôngghĩa trong f

>Event Filte

>com.acme.E ing>

>Event Filte me>SamplePo VENT</lifec ping>

g tin biến đfile portlet.x

er</filter-nam EventFilter<

er</filter-nam ortlet</port cycle>

ã làm, thay vhích ứng vớ

Trang 32

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính15 SVTH: Nam, Thuy, Trang, Trung

<scope>public</scope>

</expiration-cache>

</portlet>

Hỗ trợ validator dựa trên bộ nhớ ETAG

 Hỗ trợ các framwork web phổ biến

 Hỗ trợ mạnh các framework của web

 Cho phép servlet dispatching trong lifecycle:

Sự thay đổi API

Khi viết JSF theo chuẩn JSR 314 được hỗ trợ các thư viện sau:

package javax.faces package javax.faces.application package javax.faces.component package javax.faces.component package javax.faces.component.html package javax.faces.context

package javax.faces.convert package javax.faces.el package javax.faces.lifecycle package javax.faces.event package javax.faces.render package javax.faces.validator package javax.faces.webapp

Vòng đời xử lý của request

Vòng đời xử lý của request theo một web giao diện người dùng thì người dùng gửi một hoặc nhiều request đến server, cuối cùng gửi tất cả mô tả đến giao diện người dùng Yêu cầu ngày nay, một request dưới dạng GET hoặc POST được khởi tạo ban đầu được gửi đến server, một số response mà trình duyệt cần

xử lý và tự động tạo ra request tiếp theo sau đó gửi đến server Những response cho mỗi yêu cầu cần xử lý thường là images, JavaScript files, CSS StyleSheets… Đáp ứng yêu cầu đó, và bất kỳ yêu cầu tiếp theo được xử lý tự động bởi người dùng, và phản ứng của chúng, được gọi là Faces View Request/Response Được thể hiện trong mô hình sau:

Trang 33

es Request tquest tạo raquest tạo ra

Request: M

hư một hypnơi mà các

a Faces Res

a Non-FacesMột responong vòng đờ

nse: Một re

esponse tro

ra bằng S

F, hoặc là mredirect)…

Một resquestperlink hoặ

c URI yêu cnó) để xác

s Responsense được tạ

ời xử lý củaesonse khôong vòng đervlet hoặcmột respons

t được gửi đ

ặc renderedcầu đã đượcđịnh hiển

ính trên nền

Nam, Thuy, T

xử lý của r

g đời xử lý

ạo ra bằng c

a request

ng được tạđời xử lý c

i tạo ra Facponent tronbởi các thànười dùng từ

Trang 34

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính17 SVTH: Nam, Thuy, Trang, Trung

 Non-Faces Request: Một yêu cầu được gửi đến một component của ứng

dụng (ví dụ như một servlet hoặc trang jsp) chứ không phải là hướng đến

một Faces view

 Các đối tượng component model trên giao diện

 JSF hỗ trợ các thành phần giao diện người dùng với các hàm API trợ giúp:

 Converters: Pluggable hỗ trợ các class để chuyển đổi về đúng các giá trị

của các component đã được quy định trước

 Events and Listeners: lắng nghe những sự kiện và sự thay đổi trên mặt giao

diện được đăng ký trong phần model dựa trên mẫu thiết kế JavaBeans

Specification, version 1.0.1

 Validators: hỗ trợ các class để kiểm tra tính đúng đắn đầu vào của các

component trên giao diện (khi nhận được request) và đảm bảo phù hợp với

quy luật được định nghĩa sẵn

 Các đối tượng được hỗ trợ:

 UIComponent and UIComponentBase

UIComponent là một class abstract cho tất cả các component giao diện,

được cung cấp bởi classjavax.faces.component.UIComponen,class

này xác định các thông tin và những trạng thái của tất cả các component

thông qua một ngôn ngữ lập trình Java API, điều này có nghĩa là các

component này độc lập với công nghệ như JSP

javax.faces.component.UIComponentBase được cung cấp như là một phần của JSF Lớp này cung cấp hữu ích mặc định triển khai thực hiện của

phương pháp gần UIComponent, cho phép các nhà văn thành phần để tập

trung vào duy nhất đặc điểm của một thực hiện UIComponent cụ thể

 Component Behavioral Interfaces

Ngoài việc mở rộng các UIComponent, các class component cũng có thể

implement các interface behavioral được mô tả bên dưới Các thành phần

nếu hiện thực các interface này thì cần phải hiện thực lại các phương thức

được định nghĩa: ActionSource, ActionSource2, NamingContainer, StateHolder,

PartialStateHolder,ValueHolder,

EditableValueHolder,SystemEventListenerHolder, ClientBehaviorHolder

 Conversion Model

Interface này hỗ trợ các class để chuyển đổi kiểu dữ liệu của các

component trên giao diện

ConverterJSF cung cấp interface

Phương thức này được dùng để chuyển đổi giá trị hiển thị trên giao diện

của các component (kiểu dữ liệu trả về thường là String như một tham số

request )

public String getAsString(FacesContext context, UIComponent

Trang 35

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính18 SVTH: Nam, Thuy, Trang, Trung

component, Object value) throws ConverterException;

Phương thức này được dùng để chuyển đổi giá trị hiển thị trong model của

các component (kiểu dữ là các đối tượng của java )

Standard Converter Implementations

 JSF hỗ trợ các class hiện thực Converter gồm:

javax.faces.BigDecimal javax.faces.BigInteger javax.faces.Boolean javax.faces.Byte javax.faces.Character javax.faces.DateTime javax.faces.Double javax.faces.Float javax.faces.Integer javax.faces.Long javax.faces.Number javax.faces.Short

 Event and Listener Mode

 Validation Model

 Composite User Interface Components

 Component Behavior Model

 Per-Request State Information

 FacesContext

abstractjavax.faces.context.FacesContextđại diện cho tất cả các

thông tin được kết hợp với việc truy xuất của request đang đến và tạo ra xử lý

tương ứng Một FacesContext được tạo ra bởi việc hiện thực JSF, trước khi

bắt đầu chu trình xử lý request bằng cách gọi các phương

thứcgetFacesContextcủa đối tượngFacesContextFactory

 Application

public Application getApplication();

 Attributes

public Map<Object,Object> getAttributes();

Phương thức này trả về một Map chứa các attribute được gởi đi trong request

 ELContext

public ELContext getELContext();

Phương thức này trả về đối tượng ELContext và có thời gian sống và phạm

vi giống như FacesContext

 ExternalContext

public ExternalContext getExternalContext();

ExternalContext là một đối tượng cần thiết được tích hợp trong API được

cung cấp trong môi trường chạy của JSF, thường được gọi trong quá trình

chạy

 Flash

Flash cung cấp một cách để vượt qua các đối tượng giữa giao diện người

dùng được tích hợp bởi faces lifecycle Bất kỳ một nơi nào trong flash điều

Trang 36

uốt giai đoạ

e Queue

pub m pub pub pub pub

Kit

public

seStream an

pub pub re pub pub re pub

ontrol Meth

pub pub pub pub

Processing M pubthức này thiện mới hView Conte

To The Cur

public prote

blic Iterator<

c RenderKit

nd Respons

blic Response blic void setR esponseStrea blic Response blic void setR esponseWrite blic void enab

hods

blic void rend blic void resp blic boolean g blic boolean g

Methods blic PartialVtrả về một hoặc trả về mext

rrent FacesC

c static Face ected static v

ồ sơ hành chí

SVTH: N

hiện tiếp the

ot getViewR ewRoot(UIV

View trong

dMessage(Str r<String> ge getMaximum

eWriter getR ResponseWri er);

bleResponse

derResponse ponseCompl getRenderR getResponse

ViewContexthể hiện củmột thể hiện

Context Ins

esContext ge void setCurr

age> getMe age> getMe

Kit();

ResponseStr eam(Respons ResponseWri iter(Respons eWriting(boo

essages();

ream();

seStream iter();

seWriter olean enable

;

alViewContiewContextContext

Trang 37

ng dụng hooại lệ được

ards Comp

ực một claavax.faces

0 quy địnhhase() và afeJsf2Except

ại. 

n thực ngườ

ẻ <factory /eption-hand jaception-han

e getRootCa ExceptionEv dle() throws F sListenerFor essEvent(Sys gException;

patible Ex

ss Exception

webapp.Pre

h bất kỳ mộfterPhase() tionHandler

ời dùng cần/>trong filedler-factoryavax.faces.wndler-factory

ư là kết quả

lệ sau đây idatorExce verterExce MissingReso

ceptionHan

nHandlerFacto

eJsf2Excep

ột exceptionđiều phải đ

r thì cho p

n phải khai

e cấu hình ny> 

webapp.PreJy>

ính trên nền

Nam, Thuy, T

ể xử lý các Faces vòng goại lệ xảy

ơi trong đặc

ả của quá trì

y không

eption được eption đượ ourceExcep

ời gian chạy

mentationM

ương thức sa

ptionEvent();

ndledExcept able t);

handledExce tion;

báo Excepnhư sau: 

Jsf2Excepti

Liferay Port

Trang, Trung

trường hợpđời Excep

ra trong qu

c tả khuôn ình xử lý vòđược xử

; tionEvents() eptionEvents ent) throws

ng thời gia

ện của claserFactory.Ctung ra tro

ht, logged, v

ữ khả năng ptionHandle

ionHandler

tal

g

p ngoại lệ bptionHandle

uá trình khởmặt yêu cầòng đời bìn

lý bởi cá

cụ thể đượ

cụ thể đượthrow tronđược quản lthực th

; ts();

Trang 38

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính21 SVTH: Nam, Thuy, Trang, Trung

Mỗi message nằm trong hàng đợi của một FacesContext là một thể hiện của class javax.faces.application.FacesMessage Nó hỗ trợ cho các constructor sau:

Những phương thức được hỗ trợ để get và set các thuộc tính của một message:

public String getDetail();

public void setDetail(String detail);

public Severity getSeverity();

public void setSeverity(Severity severity);

public String getSummary();

public void setSummary(String summary);

Những thuộc tính của message được định nghĩa như sau:

 Detail: thể hiện thông tin chi tiết của một FacesMessage, giúp cho người dùng hiểu rõ vấn đề màn FacesMessage muốn thông báo

 Severity: định nghĩa mức độ nghiêm trọng của thông báo đến người dùng Bốn tiêu chuẩn đánh giá mức độ nghiêm trọng của FacesMessages là: SEVERITY_INFO, SEVERITY_WARN, SEVERITY_ERROR, và SEVERITY_FATAL

Sumary: tóm tắt nội dung của một FacesMessage

 ResponseStream:Là một class abstract đại diện cho một output stream dạng

binary dành cho những phản hồi hiện thời Nó có tất cả các phương thức mà một class java.io.OutputStreamcung cấp

 ResponseWriter: ResponseWriterlà một classabstract đại diện cho một output stream dạng character Một thể hiện của ResponseWriterđược gọi thông qua phương thức củaRenderKit Các phương thức hỗ trợ gồm:

public void close() throws IOException;

public void flush() throws IOException;

public void write(char c[]) throws IOException;

public void write(char c[], int off, int len) throws IOException;

public void write(int c) throws IOException;

public void write(String s) throws IOException;

public void write(String s, int off, int len) throws IOException;

ClassResponseWriterkế thừa classjava.io.Writer do đó kế thừa tất

cả những phương thức của một low-level output

public abstract String getContentType();

public abstract String getCharacterEncoding();

public void startCDATA();

public void endCDATA();

public void startDocument() throws IOException;

public void endDocument() throws IOException;

public void startElement(String name, UIComponent

componentForElement) throws IOException;

public void endElement(String name) throws IOException;

public void writeComment(Object comment) throws IOException;

public void writeAttribute(String name, Object value, String

componentPropertyName) throws IOException;

public void writeURIAttribute(String name, Object value, String

Trang 39

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính22 SVTH: Nam, Thuy, Trang, Trung

componentPropertyName) throws IOException;

public void writeText(Object text, String property) throws IOException;

public void writeText(char text[], int off, int len) throwsIOException;

public abstract ResponseWriter cloneWithWriter(Writer writer);

 FacesContextFactory:Trong JSF hỗ trợ FacesContextFactory được chạy

trong servlet hoặc portlet container Cách get FacesContextFactory trong JSF như sau:

FacesContextFactory factory = (FacesContextFactory)

FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);

 ExceptionHandlerFactory:Một thể hiện của

javax.faces.context.ExceptionHandlerFactoryphải được hiện thực trong các ứng dụng JSFtrong servlet hoặc portlet container, cách để get đối tượng ExceptionHandlerFactory như sau:

ExceptionHandlerFactory factory = (ExceptionHandlerFactory)

FactoryFinder.getFactory(Factory-Finder.EXCEPTION_HANDLER_FACTORY);

javax.faces.context.ExternalContextFactoryphải được hiện thực trong các ứng dụng JSFtrong servlet hoặc portlet container, cách để get đối tượng ExternalContextFactorynhư sau:

ExternalContextFactory factory = (ExternalContextFactory)

FactoryFinder.getFactory(Factory-Finder.EXTERNAL_CONTEXT_FACTORY);

 Rendering Model: JavaServer Faces hỗ trợ hai mô hình lập trình choviệc mã

hóa giá trị của các component request gửi đến và giải mã giá trị của các component nhận về được thực hiện theo một redirect đi và nhận về

Khi thực hiện một model dưới hình thức redirect thì các component cần phải được mã hóa và giải mã, để hiện thực mô hình này các hoạt động được giao cho một đối tượng là Renderer cho các component

 RenderKit: RenderKit là một thể hiện kết hợp với view và hỗ trợ cho các

component việc mã hóa và giải mã giá trị của chúng Đồng thời RendererKit cũng hỗ trợ Behavior đến các client và giải mã cho các BehaviorEvents trong hàng đợi.Các phương thức hỗ trợ gồm:

public Renderer getRenderer(String family, String rendererType);

public ClientBehaviorRenderer getClientBehaviorRenderer(String type);

public void addRenderer(String family, String rendererType, Renderer renderer); public void addClientBehaviorRenderer(String type,ClientBehaviorRenderer renderer);

public Iterator<String> getClientBehaviorRendererTypes();

public ResponseWriter createResponseWriter(Writer writer, String

contentTypeList, String characterEncoding);

public ResponseStream createResponseStream(OuputStream out);

public ResponseStateManager getResponseStateManager();

public Iterator<String> getComponentFamilies();

public Iterator<String> getRendererTypes(String componentFamily);

Trang 40

Xây dựng ứng dụng quản lý hồ sơ hành chính trên nền Liferay Portal

GVHD: TS Phạm Văn Tính23 SVTH: Nam, Thuy, Trang, Trung

 Renderer: Một Renderer thực hiện việc mã hóa và giãi mã chức năng của

các component, trong suốt giai đoạn chấp nhận giá trị của request và render response trong vòng đời xử lý của request khi có thành phần có giá trị không

là null.Các phương thức hỗ trợ gồm:

public void decode(FacesContext context, UIComponent component);

public void encodeBegin(FacesContext context, UIComponent component) throws IOException;

public void encodeChildren(FacesContext context, UIComponent component) throws IOException;

public void encodeEnd(FacesContext context, UIComponent component) throws IOException;

public String convertClientId(FacesContext context, String clientId);

public boolean getRendersChildren();

public Object getConvertedValue(FacesContext context,UIComponent component, Object submittedValue) ThrowsConverterException;

 ClientBehaviorRenderer: ClientBehaviorRenderer tạo ra những ứng xử

của client đến các component từ nội dung của một đoạn script Nó cũng tham gia giải mã nên cũng được dùng trong BehaviorEvents ở server

trongjavax.faces.application.StateManagerđể hiểu rõ hơn về quá trình tạo ra một Response, đó là một class abstract singleton Class này cho biết cơ chế lưu các trạng thái cho dù đó là các trường hidden hoặc sesion, hoặc kết hợp cả hai.Các phương thức hỗ trợ

public Object getState(FacesContext context);

public void writeState(FacesContext context, Object state) throwsIOException;

Ngày đăng: 12/06/2018, 15:19

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[9] IBM, Java(TM) Portlet Specification ("Specification"), lần thứ 2, IBM Corp., January 25, 2008 Sách, tạp chí
Tiêu đề: Specification
[1] Richard L. Sezov, Jr. and Stephen Kostas, Liferay Portal Administrator's Guide,lần thứ tư, Liferay, Inc., 2010 Khác
[2] Sarang and Poornachandra, Practical Liferay: Java–based Portal Applications Development, lần thứ nhất, Apress. pp. 384, April 30 2009, ISBN 1430218479 Khác
[3] Jeff Linwood and Dave Minter, Building Portals with the Java Portlet API, Apress, 2004, ISBN (pbk): 1-59059-284-0 Khác
[4] Connor McKay and Jorge Ferrer, Liferay developer guide 6.0, lần 1, Liferay, Inc., 2010 Khác
[5] Kent Ka Iok Tong, Beginning JSF™ 2 APIs and JBoss® Seam, Apress, 2009, ISBN-13 (pbk): 978-1-4302-1922-4 Khác
[6] Zahid Khan, Sample IceFaces portlet, TransIT mPower Labs (P) Ltd , Bangalore, India Khác
[7] Neil Griffin, Filthy Rich Portlets with ICEaces and Liferay, Liferay Inc. and ICEsoft Technologies Inc, 2008 Khác
[8] Ed Burns, Roger Kitain, JavaServerTM Faces Specification, lần thứ 2, Sun Microsystems Inc, 4150 Network Circle Santa Clara.CA 95054 U.S.A., June 2009 Khác
[10] David Geary, Cay Horstmann, Core JavaServer faces, lần thứ 3, Oracle, Ann Arbor, Michigan, U.S, May 2010 Khác
[11] Chris Schalk, Ed Burns, with Neil Griffin, JavaServer Faces 2.0:The Complete Reference, McGraw-Hill Companies,2010 Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm