CDI Portlet Predefined Beans
Liferay DXP provides injectable portlet artifacts for CDI called Portlet Predefined Beans, as specified by JSR 362. There are two types of predefined beans:
- 
Portlet Request Scoped Beans ( @PortletRequestScoped
- 
Dependent Scoped Beans ( @Dependentscoped)
The table below describes these attributes for each bean:
Artifact: The bean’s type.
Bean EL Name: Expression Language (EL) name for accessing the bean in a JSP or JSF page.
Qualifier: Annotation applied to the bean for defining and selecting a bean implementation.
Valid during (phase): The portlet phases in which the bean is valid.
Portlet Request Scoped Beans
These beans have the @PortletRequestScoped annotation. Here are their artifact types, bean EL names, and annotation qualifiers, along with their valid portlet phases.
Table 1: Portlet Request Scoped Beans1
| Artifact | Bean EL Name | Qualifier | Valid during | 
|---|---|---|---|
| PortletConfig | portletConfig | - | all | 
| PortletRequest | portletRequest | - | all | 
| PortletResponse | portletResponse | - | all | 
| ActionRequest | actionRequest | - | action | 
| ActionResponse | actionResponse | - | action | 
| HeaderRequest | headerRequest | - | header | 
| HeaderResponse | headerResponse | - | header | 
| RenderRequest | renderRequest | - | render | 
| RenderResponse | renderResponse | - | render | 
| EventRequest | eventRequest | - | event | 
| EventResponse | eventResponse | - | event | 
| ResourceRequest | resourceRequest | - | resource | 
| ResourceResponse | resourceResponse | - | resource | 
| StateAwareResponse | stateAwareResponse | - | action, event | 
| MimeResponse | mimeResponse | - | header, render, resource | 
| ClientDataRequest | clientDataRequest | - | action, resource | 
| RenderParameters | renderParams | - | all | 
| MutableRenderParameters | mutableRenderParams | - | action, event | 
| ActionParameters | actionParams | - | action | 
| ResourceParameters | resourceParams | - | resource | 
| PortletContext | portletContext | - | all | 
| PortletMode | portletMode | - | all | 
| WindowState | windowState | - | all | 
| PortletPreferences | portletPreferences | - | all | 
| Cookies(List<Cookie>) | cookies | - | all | 
| PortletSession | portletSession | - | all | 
| Locales(List<Locale>) | locales | - | all | 
Dependent Scoped Beans
These beans use the @Dependent scope. They’re of type java.lang.String, which is final. This disqualifies them from being proxied. To prevent using dependent scoped beans in a scope broader than their original scope, you should only inject them into @PortletRequestScoped beans.
Table 2: Dependent Scoped Beans2
| Artifact | Bean EL Name | Qualifier | Valid during | 
|---|---|---|---|
| Namespace(String) | namespace | @Namespace | all | 
| ContextPath(String) | contextPath | @ContextPath | all | 
| WindowID(String) | windowId | @WindowId | all | 
| Portlet name(String) | portletName | @PortletName | all |