Giáo trình Lập trình Java - Bài 7: Tổ chức giao diện
Tìm hiểu layout và template
Tổ chức website một layout
Tổ chức website nhiều layout thông qua layoutdispatcher
Tổ chức website đa ngôn ngữ
Tài nguyên
Hiển thị
Cấu hình
Lựa chọn ngôn ngữ
41 trang |
Chia sẻ: huongthu9 | Lượt xem: 693 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Lập trình Java - Bài 7: Tổ chức giao diện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH JAVA 5
BÀI 7: TỔ CHỨC GIAO DIỆN
MỤC TIÊU
Phân biệt layout và template
Tổ chức website sử dụng layout
Module hóa giao diện
Đa ngôn ngữ
LAYOUT LÀ GÌ?
Layout có thể hiểu đơn giản là bố cục của trang web
(cách sắp xếp các thành phần, trình bày nội dung
trên trang web).
HEADER
MENU
THANH ĐIỀU
KHIỂN
VÙNG NỘI DUNG
FOOTER
TEMPLATE LÀ GÌ
Template là bộ khung giao diện mẫu được dùng
chung cho một số trang web trong website
DEMO
Chạy đề mô một layout
TỔ CHỨC GIAO DIỆN
Trong phạm vi môn học này không hướng dẫn
cách thiết kế layout mà chỉ sử dụng để làm
template
Với Spring MVC tổ chức template nằm ở
ViewResolver
Qui luật hoạt động của ViewResolver được mô tả
như sau
ViewResolverviewname prefix + viewname + suffix
VIEWRESOLVER
Như vậy khi action return “home/index” thì trang
/WEB-INF/views/home/index.jsp sẽ được gọi
để thực hiện sinh giao diện trả về client.
home/index
/WEB-INF/views/home/index.jsp
VIEWRESOLVER
Như vậy mọi return từ phương thức action thì
layout.jsp luôn luôn chạy và nhận một tham số
có tên là view có giá trị là trang jsp.
home/index
/WEB-INF/views/layout.jsp?view=home/index.jsp
TỔ CHỨC TRANG LAYOUT.JSP
Giả sử trang layout.jsp có dòng mã <jsp:include
page=“${param.view}”/> đặt tại nơi cần hiển
thị nội dung của view thì view này sẽ chạy và kết
xuất kết quả tại nơi đặt mã.
Tóm lại để tổ chức template trong Spring MVC
bạn cần 2 bước
Cấu hình ViewResolver chuyển về trang layout
Trang layout.jsp chứa thẻ
XEM XÉT TÌNH HUỐNG
TEMPLATE
VÙNG NÀY DÀNH CHO NỘI DUNG VIEW
TỔ CHỨC GIAO DIỆN
Để giải quyết tình huống này
chúng ta cần có
Trang layout.jsp là template có
chứa
Trang index.jsp là trang thành
viên cung cấp nội dung trang
chủ
Trang about.jsp là trang thành
viên cung cấp nội dung giới
thiệu
layout.jsp
Index.jsp,
about.jsp
MÃ NGUỒN CỦA LAYOUT.JSP
/WEB-INF/views/layout.jsp
Tham số view là trang jsp. Trang JSP
này sẽ được gọi thực hiện và kết
xuất kết quả tại vị trí đặt thẻ
MÃ NGUỒN CỦA INDEX.JSP VÀ ABOUT.JSP
/WEB-INF/views/home/index.jsp /WEB-INF/views/home/about.jsp
MÃ HOMECONTROLLER
Những tên view này được
DispatcherServlet chuyển qua
ViewResolver để xác định View cần
thực hiện
PHÂN TÍCH HOẠT ĐỘNG
ViewResolverhome/index /WEB-INF/views/layout.jsp?view=home/index.jsp
/WEB-INF/views/home/index.jsp
ViewResolverhome/about /WEB-INF/views/layout.jsp?view=home/about.jsp
/WEB-INF/views/home/about.jsp
DEMOGiải thích
+ Cấu hình
+ HomeController
+ Layout.jsp
+ Index.jsp, About.jsp
TỔ CHỨC NHIỀU LAYOUT
Trong một website đôi khi cần nhiều hơn một
layout, mỗi layout áp dụng cho một nhóm trang
nào đó.
Để tổ chức nhiều layout chúng ta cần một
layout-dispatcher.jsp và nhiều layout thành viên.
Trang layout-dispatcher.jsp này đảm nhận việc
điều phối layout nào được chọn dựa vào tên
view trả về từ Controller
ViewResolver layout-dispatcher
layout1
layout2
layout3
DEMO
Chạy demo nhiều layout
DEMO
home/index.htm
admin/student.htm
Giải thích
TỔ CHỨC NHIỀU LAYOUT
Với đoạn mã này
chúng ta hiểu rằng
nếu return từ
controller bắt đầu
bởi admin/ thì sẽ
chọn admin-
layout.jsp ngược lại
chọn user-layout.jsp
layout-dispatcher.jsp
ViewResolver
PHÂN TÍCH HOẠT ĐỘNG ĐIỀU PHỐI LAYOUT
ViewResolver
home/index
dispatcher-layout.jsp?view=home/index.jsp
home/index.jsp
user-layout.jsp
ViewResolver
Admin/home/index
dispatcher-layout.jsp?view=admin/home/index.jsp
home/index.jsp
admin-layout.jsp
DEMO
Giải thích cơ chế hoạt động
+ Cấu hình nhiều layout
+ AdminController
+ admin-layout.jsp
+ user-layout.jsp
LẬP TRÌNH JAVA 5
PHẦN 2
MODULE HÓA GIAO DIỆN
Trong layout thường có nhiều module giao diện.
Mỗi module có vai trò khác nhau được xử lý khác
nhau.
Để dễ quản lý, bảo trì chúng ta cần tách độc lập
các module sau đó lắp ra trở lại.
Tạo trang jsp chứa phần mã module muốn tách
Sử dụng để lắp module trở lại
Sau khi tách
Mã nguồn layout trở nên đơn giản
Mã xử lý bộ phận được phân theo module
MODULE HÓA GIAO DIỆN
main-menu.jsp
cart-info.jsp
catgory.jsp
top-menu.jsp
Sử dụng
để kết xuất module giao diện vào đúng vị trí thích hợp
MODULE HÓA GIAO DIỆN
DEMO
Hiện thực hóa slide trước
WEBSITE ĐA NGÔN NGỮ
Website đa ngôn ngữ là website cho phép hiển
thị giao diện nhiều dạng ngôn ngữ khác nhau
DEMO
Chạy đề mô với cấu hình đa ngôn ngữ
TỔ CHỨC GIAO DIỆN ĐA NGÔN NGỮ
Nội dung trên giao diện cần được tổ chức thành
các file tài nguyên (properties) và dịch sang các
ngôn ngữ
Giao diện tham chiếu đến các nội dung định
nghĩa trong các file tài nguyên
LocaleResolver hỗ trợ lựa chọn tài nguyên theo
ngôn ngữ hiện tại
Giao diện
LocaleResolver Tài nguyên
GIAO DIỆN ĐA NGÔN NGỮ
Để xây dựng website đa ngôn ngữ trong Spring
MVC bạn cần thực hiện 4 bước
Bước 1: Tổ chức các file tài nguyên
Bước 2: Hiển thị nội dung đa ngôn ngữ lên giao
diện
Bước 3: Thực hiện cấu hình đa ngôn ngữ
Bước 4: lập trình điều khiển chọn ngôn ngữ
1. XÂY DỰNG CÁC FILE TÀI NGUYÊN
Tạo thư mục chứa các file tài nguyên
Tạo các file tài nguyên
global chứa các nội dung dùng chung trong layout
home.index và home.about dùng riêng cho từng view
index.jsp và about.jsp của HomeController
Các file tiếng việt cần phải có mã ngôn ngữ là _vi
Chú ý: các file tài nguyên này cần để chế độ UTF-8 để
có thể gõ tiếng việt
1. XÂY DỰNG CÁC FILE TÀI NGUYÊN
File tài nguyên cùng tên, khác mã ngôn ngữ
Nội dung cùng key (code), khác giá trị
global_vi.propertiesglobal.properties
home.index_vi.propertieshome.index.properties
home.about_vi.propertieshome.about.properties
2. HIỂN THỊ NỘI DUNG ĐA NGÔN NGỮ
Để chọn đúng nội dung trong file tài nguyên và
hiển thị lên giao diện phải cần 2 bước
Khai báo thư viện
Nhúng nội dung tương ứng với code đã khai báo
about.jsp
3. CẤU HÌNH SPRING
Cần khai báo các thông tin cấu hình sau đây
Sử dụng bean sau để khai báo các file tài nguyên
ReloadableResourceBundleMessageSource
Sử dụng bean sau để ghi nhớ ngôn ngữ bằng cookie.
Sử dụng cookie để duy trì ngôn ngữ để lần truy cập
sau đó trên máy đang sử dụng thì ngôn ngữ đã được
chọn trước đó vẫn được duy trì.
CookieLocaleResolver
Sử dụng interceptor sau để nhận biết sự thay đổi
ngôn ngữ
LocaleChangeInterceptor
3. CẤU HÌNH SPRING
Khai báo tên các file tài
nguyên (không gồm phần mở
rộng của file)
Ngôn ngữ mặc định và thời
gian (giây) duy trì ngôn ngữ
đã chọn trên cookie
Tên tham số sử dụng để chọn
ngôn ngữ
4. LẬP TRÌNH CHỌN NGÔN NGỮ
Phương pháp đơn giản nhất là sử dụng ajax để gọi đến 1
action bất kỳ miễn là có chứa tham số language.
Ở đây sử dụng jquery (cần thư viện trong layout) . Phương
thức $.get(url) gọi home/index bằng ajax. Sau khi lời gọi
thành công phương thức location.reload() để tải lại trang
web hiện tại với tài nguyên của ngôn ngữ được chọn
@data-lang chứa mã
ngôn ngữ
Lấy mã ngôn ngữ của
liên kết bị click
DEMOGiải thích tổ chức đa ngôn ngữ
+ File tài nguyên
+ Hiển thị
+ Cấu hình
+ Lựa chọn ngôn ngữ
TỔNG KẾT NỘI DUNG BÀI HỌC
Tìm hiểu layout và template
Tổ chức website một layout
Tổ chức website nhiều layout thông qua layout-
dispatcher
Tổ chức website đa ngôn ngữ
Tài nguyên
Hiển thị
Cấu hình
Lựa chọn ngôn ngữ
Các file đính kèm theo tài liệu này:
- giao_trinh_lap_trinh_java_bai_7_to_chuc_giao_dien.pdf