Giao diện portlet

Một phần của tài liệu xây dựng CMS MODULE cho hệ thống intranet của công ty TMA (Trang 56 - 63)

Giao diện Portlet khai báo các API cơ bản nhất của một Portlet. Mọi Portlet

được xây dựng đều phải hiện thực hoá trực tiếp hoặc gián tiếp giao diện Portlet.

Lớp GenericPortlet hiện thực hoá giao diện Portlet và định nghĩa các chức năng cơ bản nhất mà một Portlet cần có. Do đó, khi xây dựng Portlet, lập trình viên nên mở

rộng trực tiếp hoặc gián tiếp lớp GenericPorlet này.

Một Portlet được quản lý thông qua chu trình sống của nó, bắt đầu từ lúc Portlet

được tải lên, tạo thể hiện của nó và khởi tạo, hoạt động để phản hồi yêu cầu của người sử dụng đến lúc nó được loại bỏ. Các phương thức được gọi đến trong chu trình sống của Portlet là:

• Gọi phương thức init trong quá trình khởi tạo của Portlet

• Nếu yêu cầu do máy khách gởi tới là yêu cầu hành động (Action Request) thì phương thức processAction được gọi. Nếu yêu cầu do máy khách gởi tới là yêu cầu biểu hiện (Render Request) thì phương thức processAction được gọi.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

• Khi Portlet Container xác định một Portlet không còn sử dụng nữa thì gọi

đến phương thức destroy của Portlet đó. Khi phương thức destroy được gọi thì Portlet sẽ giải phóng tài nguyên hệ thống mà nó đang sử dụng và lưu lại trạng thái hiện thời của nó.

5. Portlet URL

Một Portlet có thể tạo ra URL tham chiếu đến chính Portlet đó. Khi đó các URL này được gọi là Portlet URL.

Để tạo ra một Portlet URL thì Porlet cần phải sử dụng đối tượng PorletURL. Nếu phương thức createActionURL được gọi thì sẽ tạo ra một URL hành động và nếu phương thức createRenderURL được gọi thì tạo ra một URL trình diễn.

6. Portlet Mode

Kiểu Portlet xác định chức năng mà Portlet hiện đang thực hiện. Thông thường, Portlet thực hiện các tác vụ và tạo ra nội dung tùy thuộc vào chức năng hiện thời. Kiểu Portlet cho biết những tác vụ nào một Portlet cần thực hiện và những nội dung nào Portlet cần phải tạo ra.

Có 3 kiểu Portlet được quy định là:

• VIEW

ƒ Chức năng chính của Portlet khi sử dụng kiểu VIEW là tạo ra nội dung cho biết trạng thái của Portlet

ƒ Lập trình viên sẽ hiện thực hóa kiểu VIEW bằng cách định nghĩa lại phương thức doView của lớp GenericPortlet.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

ƒ Mọi Portlet đều phải hỗ trợ kiểu VIEW

• EDIT

ƒ Trong kiểu EDIT, một Portlet sẽ cung cấp nội dung và cấu hình các thành phần của nó để người sử dụng có thể tối ưu hóa họat động của Portlet

ƒ Lập trình viên sẽ hiện thực hóa kiểu EDIT bằng cách định nghĩa lại phương thức doEdit của lớp GenericPortlet.

ƒ Mọi Portlet không nhất thiết phải hỗ trợ kiểu VIEW

• HELP

ƒ Trong kiểu HELP, Portlet cung cấp những thông tin giúp đỡ người sử

dụng về Portlet. Những thông tin này có thể là những thông tin chung về toàn bộ Portlet hoặc là các giúp đỡ cảm ngữ cảnh (Context- sensitive help)

Các hằng số tượng trưng cho 3 kiểu Portlet được khai báo trong lớp PortletMode

7. Window State (adsbygoogle = window.adsbygoogle || []).push({});

Trạng thái cửa sổ cho biết khoảng không gian trên trang Web Portal dành cho nội dung của Portlet.

Có 3 trạng thái cửa sổđược định nghĩa :

• NORMAL: cho biết Porlet có thể chia sẻ trang Portal với các Portlet khác. Ngoài ra, trạng thái này còn cho biết giới hạn hiển thị của thiết bị

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

• MAXIMIZED: cho biết chỉ có một Portlet hiển thị trên trang Portal hoặc Portlet được ưu tiên hiển thị nội dung nhiều hơn các Portlet còn lại.

• MINIMIZED: Cho biết nội dung của Portlet chỉ được hiển thị ít nhất có thểđược hoặc không được hiển thị.

Các trạng thái cửa sổđược định trong lớp WindowState.

8. Portlet Request

Một yêu cầu gởi đến Portlet chứa các thông tin về yêu cầu từ phía máy khách, các tham số của yêu cầu, nội dung dữ liệu yêu cầu, kiểu Portlet, trạng thái cửa sổ…

Yêu cầu được đại diện bởi một đối tượng và đối tượng này được truyền vào như

là đối số của phương thức processAction hay render.

Mỗi đối tượng yêu cầu chỉ có thể họat động trong phạm vi của một phương thức processAction hay render

Các chức năng cần thiết của đối tượng PortletRequest được khai báo trong giao diện PortletRequest.

9. Portlet Response

Một phản hồi của Portlet bao gồm những thông tin được tạo ra bởi Portlet gởi trả về cho Portlet Container dựa trên yêu cầu được gởi đến như: sự thay đổi kiểu Portlet, tiêu đề, nội dung… Portlet Container sẽ sử dụng những thông tin này để tạo ra phản hồi đến người sử dụng, thông thường là một trang Web Portal.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Mỗi đối tượng phản hồi chỉ có thể họat động trong phạm vi của một phương thức processAction hay render

Các chức năng cần thiết của đối tượng Portlet Response được khai báo trong giao diện PortletResponse.

10. Portlet Preferences

Portlet thông thường được cấu hình cho phù hợp với từng người sử dụng. Các thông tin về cấu hình của Portlet được gọi là Portlet Preference. Và Portlet Container sẽ chịu trách nhiệm lưu giữ những thông tin cấu hình này.

Portlet có thể truy cập vào các thông tin cấu hình của nó thông qua giao diện PortletPreferences. Và Portlet chỉ có thể thay đổi các thông tin về cấu hình của nó bên trong phương thức processAction.

Định nghĩa Portlet xác định các thuộc tính preference mà một Portlet sử dụng.

Định nghĩa này bao gồm các giá trị khởi tạo và xác định xem thuộc tính này có phải là thuộc tính chỉđọc hay không.

11. Caching

Việc lưu các nội dung cần sử dụng vào vùng nhớ tạm thời được thực hiện nhằm mục đích rút ngắn thời gian xử lý của Portlet, đồng thời cũng rút ngắn thời gian xử lý của Server.

Đặc tả Portlet xác định cơ chế hết hạn việc lưu trữ nội dung lưu tạm thời này. Cơ chế này họat động tùy thuộc và từng Portlet và từng người sử dụng Portlet. Nội

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

dung được lưu trữ tạm thời không được chia sẻ giữa các người sử dụng khác nhau đang sử dụng đồng thời cùng một Portlet.

Một Portlet muốn tăng thời gian xử lý bằng cách sử dụng cơ chế lưu trữ tạm thời nội dung cần phải định nghĩa thời gian hết hạn nội dung lưu tạm thời (tính bằng

đơn vị giây) trong đặc tả triển khai của nó. Ví dụ sau đây cho biết một Portlet muốn nội dung của nó được lưu trữ tạm thời với thời gian hết hạn là 300 giây. (adsbygoogle = window.adsbygoogle || []).push({});

... <portlet> ... <expiration-cache>300</expiration-cache> ... </portlet> ... Một Portlet nếu đã định nghĩa thời gian hết hạn lưu trữ dữ liệu tạm thời của nó trong đặc tả triển khai của nó vẫn có thểđược lập trình viên thay đổi

Thời gian hết hạn của việc lưu trữ tạm thời này có thểđược thay đổi bằng cách thay đổi thuộc tính của đối tượng RenderResponse.

Nếu thời gian hết hạn này được gán bằng 0 thì việc lưu trữ dữ liệu tạm thời bị

bỏ qua đối với Portlet. Nếu giá trị này được gán bằng -1 thì các nội dung được lưu tạm thời của Portlet sẽ không bao giờ bị hết hạn.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Nếu một Portlet không định nghĩa thời gian hết hạn của dữ liệu lưu trữ tạm thời trong đặc tả triển khai của nó thì việc thay đổi giá trị thời gian này trong đối tượng RenderResponse sẽ không có tác dụng do sẽ bị Portlet Container bỏ qua.

Nếu nội dung của Portlet được lưu trữ tạm thời và chưa hết hạn, đồng thời không có một yêu cầu nào đến Portlet từ phía người sử dụng thì Portlet Container sẽ sử

dụng nội dung được lưu trữ tạm thời khi cần thiết.

Nếu nội dung của Portlet được lưu trữ tạm thời và có yêu cầu đến Portlet từ phía người sử dụng thì Portlet Container sẽ không sử dụng nội dung tạm thời được lưu trữ

mà sẽ gọi đến phương thức xử lý yêu cầu của Portlet

12. ng dng Portlet

12.1 Các thành phn ca ng dng Portlet

Ứng dụng Portlet là một ứng dụng Web nên ngoài việc bao gồm Portlet và đặc tả triển khai Portlet, nó còn có thể chứa các thành phần khác như: Servlet, trang JSP, các lớp… Do đó, bên cạnh các thông tin vềứng dụng Portlet, nó còn chứa đựng thông tin về các thành phần được đưa vào ứng dụng Portlet.

12.2 Cu trúc cây thư mc

Một ứng dụng Portlet cũng có cấu trúc cây thư mục được tổ chức giống như một

ứng dụng Web. Tuy nhiên có một số khác biệt như sau:

• Có thêm tập tin /WEB-INF/portlet.xml là tập tin đặc tả triển khai của Portlet.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

• Các lớp được sử dụng cho ứng dụng Portlet và các tài nguyên khác được truy cập bởi ứng dụng Portlet cần phải được lưu trong thư mục /WEB-INF/classes hoặc trong các tập tin JAR được lưu trong thư mục /WEB-INF/lib.

12.3 Tp tin lưu tr ca ng dng Portlet

Một ứng dụng Portlet cũng được đóng gói như là một ứng dụng Web. Nghĩa là sử dụng dạng WAR (Web Application Archive) khi triển khai ứng dụng.

Một phần của tài liệu xây dựng CMS MODULE cho hệ thống intranet của công ty TMA (Trang 56 - 63)