Using themes

Một phần của tài liệu Báo Cáo Seminar- Spring MVC (Trang 29)

- Chú ý: Các lớp con của AbstractCachingViewResolver, cache view sẽ giải quyết

7. Using themes

7.1. Tổng quan về themes

- Bạn có thể áp dụng Spring Web MVC framework themes để thiết lập khuôn khổ tổng thể cái nhìn và cảm nhận của ứng dụng của bạn, qua đó nâng cao kinh nghiệm người dùng. Theme là tập hợp các tài nguyên tĩnh, thường là phong cách sheets and images, có ảnh hưởng đến phong cách trực quan của ứng dụng.

7.2. Định nghĩa themes

- Để sử dụng các theme trong ứng dụng web của bạn, bạn phải thiết lập một giao diện thực hiện org.springframework.ui.context.ThemeSource. Các giao diện WebApplicationContext mở rộng ThemeSource nhưng uỷ quyền những trách nhiệm (của) nó cho một phiên thực hiện. Theo mặc định các ủy quyền sẽ là một org.springframework.ui.context.support.ResourceBundleThemeSource thực hiện có tính chất tải file từ thư mục gốc của classpath này. Để sử dụng thực hiện ThemeSource tùy chỉnh hoặc để cấu hình các tiền tố tên cơ sở của các ResourceBundleThemeSource, bạn có thể đăng ký một bean trong từng trường hợp ứng dụng với tên themeSource được bảo lưu. Từng trường hợp ứng dụng web tự động phát hiện một bean với tên đó và sử dụng nó.

- Khi sử dụng ResourceBundleThemeSource, theme được định nghĩa trong một tập tin thuộc tính đơn giản. Các thuộc tính tập tin liệt kê các nguồn tài nguyên tạo nên theme. Đây là một ví dụ:

background=/themes/cool/img/coolBg.jpg

- Các khoá của các thuộc tính là tên tham chiếu đến các themes element từ view code. Đối với JSP, bạn thường làm được điều này bằng cách sử dụng Spring: theme custom tag,tương tự như Spring: message tag. Các JSP sau sử dụng các theme được định nghĩa trong ví dụ trước để tùy chỉnh cái nhìn và cảm nhận:

- Theo mặc định, ResourceBundleThemeSource sử dụng empty base name prefix. Kết quả là, các thuộc tính tập tin được tải từ thư mục gốc của classpath này. Vì vậy, bạn sẽ đặt các định nghĩa theme cool.properties trong một thư mục ở gốc của classpath, ví dụ, trong / WEB-INF/classes. ResourceBundleThemeSource sử dụng các gói Java resource bundle chuẩn để tải cơ chế, cho phép quốc tế hóa đầy đủ của theme. Ví dụ, chúng ta có thể có một WEB-INF/classes/cool_nl.properties / , các tài liệu tham khảo một hình nền đặc biệt với văn bản của Hà Lan về nó.

7.3. Phân giải Theme

- Sau khi bạn xác định theme, như trong phần trước, bạn quyết định theme để sử dụng. Các DispatcherServlet sẽ tìm một bean có tên themeResolver để tìm ra sự thi hành ThemeResolver để sử dụng. Một bộ phân tích theme làm việc trong nhiều cách tương tự như LocaleResolver. Nó nhận diện các theme để sử dụng cho một yêu cầu cụ thể và cũng có thể thay đổi theo yêu cầu của theme. Việc phân giải theme sau đây được cung cấp bởi Spring:

Bảng 15.5. Sự thi hành ThemeResolver

Lớp Mô tả

FixedThemeResolver FixedThemeResolverSelects là một theme cố định, thiết lập bằng cách sử dụng các thuộc tính

defaultThemeName.

SessionThemeResolver Theme này được duy trì trong HTTP session của người dùng. Nó chỉ cần được thiết lập một lần cho mỗi

session, nhưng không tồn tại giữa session.

CookieThemeResolver Các theme được chọn là lưu trữ trong một cookie trên client.

- Spring cũng cung cấp một ThemeChangeInterceptor cho phép thay đổi theme trên tất cả các yêu cầu với một request parameter đơn giản.

Một phần của tài liệu Báo Cáo Seminar- Spring MVC (Trang 29)

w