Liferay API & others

Liferay API & others
An Application Programing Interface (API) là một giao thức, khi gọi, thực hiện một hành động hoặc 1 thiết lậpcác hành động. Bạn có thể gọi một API từ code của bạn trực tiếp thông qua lời gọi Java hoặc thông qua các dịch vụ web. Bài này cung cấp tổng quan về 1 số hàm API Liferay cần thiết có sẵn cho bạn sử dụng trong việc phát triển Liferay Portal của bạn



1.  Get portlet name:
     String portletName = (String) request.getAttribute(WebKeys.PORTLET_ID);

2.  Get Theme display:
ThemeDisplay themeDisplay =
(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);

3.  Get portlet layout ID:
     Layout chính là 1 instance của 1 page. 1 Layout được định danh duy nhất bởi ID gọi là portlet
layout Id.
long plid = themeDisplay.getLayout().getPlid()

4.  Dùng PortletURLFactoryUtil để tạo portlet URL
Ví dụ sau tạo portlet URL Render phase:
PortletURL portletUrl = PortletURLFactoryUtil.create(PortalUtil.getHttpServletRequest(request),portletName,
themeDisplay.getLayout().getPlid(),
PortletRequest.RENDER_PHASE);
Thiết lập các tham số cho portlet URL:
ví dụ thiết lập tham số jspPage:
portletUrl.setParameter("jspPage", jspPage);

5.  Các biến định nghĩa sẵn để truy xuất trên trang JSP.
Portlet API và liferay cung cấp Taglib để cho phép khai báo và khởi tạo các biến trên các page            JSP
giúp cho developers thuận tiện hơn khi phát triển portlet.
Để sử dụng được các biến này, chúng ta phải khai báo định nghĩa trên trang JSP như sau:
1)  Khai báo taglib ở đầu trang JSP:
–  Portlet API:
<%@ taglib uri=”http://java.sun.com/portlet_2_0” prefix=”portlet”%>
–  Liferay:
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
2)  Sử dụng Tag lib để khai báo biến:
      <portlet:defineObjects />
      <liferay-theme:defineObjects />
      Các khai báo này nên đặt trong file init.jsp và sử dụng chung cho tất cả các trang JSP bằng cách        như
       ví dụ sau: <%@include file="/html/init.jsp" %>
      Các biến đã định nghĩa sẵn như sau:
  1.      <portlet:defineObjects /> (đối với JSR286):

Object
Type
Giải thích
renderRequest 
Javax.portlet.RenderRequest

renderResponse 
Javax.portlet.RenderResponse

resourceRequest 
Javax.portlet.ResourceRequest

resourceResponse 
Javax.portlet.ResourceResponse

actionRequest  
Javax.portlet.ActionRequest

actionResponse 
Javax.portlet.ActionResponse

eventRequest 
Javax.portlet.EventRequest

eventResponse 
Javax.portlet.EventResponse

portletConfig 
Javax.portlet.PortletConfig

portletSession 
Javax.portlet.PortletSession

portletPreferences 
Javax.portlet.PortletPreferences

portletPreferencesValues
Java.util.Map


  1. <liferay-theme:defineObjects />

themeDisplay


company


account


user


RealUser


contact


layout


layouts


……


3)  Ngoài ra, trên bất kỳ file JSP ta có thể sử dụng các biến
sau:
request           
javax.servlet.HttpServlet Request

response
javax.servlet.HttpServletResponse

session 
Javax.servlet.HttpSessionapplication

application
Javax.servlet.ServletContext


No comments:

Post a Comment