portal:runtime

Runtime is a UIPanel component that embeds the markup of a different portlet within the current portlet.

General Usage

The general usage is to specify the embedded portlet by its name. The name of an out-of-the-box Liferay portlet can be determined by examining the portlet-name element of the portal's liferay-portlet.xml descriptor.

Source Code

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:portal="http://liferay.com/faces/portal"
	xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

	<h:form>
		<!-- Embed the out-of-the-box Liferay Recent Content Portlet -->
		<portal:runtime 
			portletName="com_liferay_asset_publisher_web_portlet_RecentContentPortlet" />
	</h:form>

</ui:composition>
@ManagedBean
@ApplicationScoped
public class RuntimeBacking {

	// Logger
	private static final Logger logger = LoggerFactory.getLogger(RuntimeBacking.class);

	// Private Data Members
	private String preferencesArticle1;
	private String preferencesArticle2;
	private String preferencesArticle3;

	public String getPreferencesArticle1() {
		return preferencesArticle1;
	}

	public String getPreferencesArticle2() {
		return preferencesArticle2;
	}

	@PostConstruct
	public void postConstruct() {

		FacesContext facesContext = FacesContext.getCurrentInstance();
		Map<String, Object> requestAttributeMap = facesContext.getExternalContext().getRequestMap();
		ThemeDisplay themeDisplay = (ThemeDisplay) requestAttributeMap.get(WebKeys.THEME_DISPLAY);

		try {
			long companyId = themeDisplay.getCompanyId();
			long userId = themeDisplay.getUserId();
			long groupId = themeDisplay.getScopeGroupId();
			long folderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
			Locale locale = themeDisplay.getLocale();

			StringBuilder content1 = new StringBuilder(9);
			content1.append("<?xml version=\"1.0\"?>");
			content1.append("<root available-locales=\"en_US\" default-locale=\"en_US\">");
			content1.append(
				"<dynamic-element name=\"content\" type=\"text_area\" index-type=\"keyword\" instance-id=\"zeun\">");
			content1.append("<dynamic-content language-id=\"en_US\"><![CDATA[");
			content1.append(
				"<p>Liferay Portal is an enterprise web platform for building business solutions that deliver ");
			content1.append("immediate results and long-term value.</p>");
			content1.append("]]></dynamic-content>");
			content1.append("</dynamic-element>");
			content1.append("</root>");

			JournalArticle article1 = WebContentUtil.getArticle(companyId, userId, groupId, folderId, locale,
					"Liferay Portal", content1.toString());
			this.preferencesArticle1 = getPreferences(article1.getGroupId(), article1.getArticleId());

			StringBuilder content2 = new StringBuilder(9);
			content2.append("<?xml version=\"1.0\"?>");
			content2.append("<root available-locales=\"en_US\" default-locale=\"en_US\">");
			content2.append(
				"<dynamic-element name=\"content\" type=\"text_area\" index-type=\"keyword\" instance-id=\"yujh\">");
			content2.append("<dynamic-content language-id=\"en_US\"><![CDATA[");
			content2.append(
				"<p>Liferay Faces is an umbrella project that provides support for the JavaServer™ Faces (JSF) ");
			content2.append("standard within Liferay Portal.</p>");
			content2.append("]]></dynamic-content>");
			content2.append("</dynamic-element>");
			content2.append("</root>");

			JournalArticle article2 = WebContentUtil.getArticle(companyId, userId, groupId, folderId, locale,
					"Liferay Faces", content2.toString());
			this.preferencesArticle2 = getPreferences(article2.getGroupId(), article2.getArticleId());
		}
		catch (Exception e) {
			logger.error(e);
		}
	}

	protected String getPreferences(long groupId, String articleId) {

		StringBuilder buf = new StringBuilder();
		buf.append("<portlet-preferences>");
		buf.append("<preference>");
		buf.append("<name>groupId</name>");
		buf.append("<value>");
		buf.append(groupId);
		buf.append("</value>");
		buf.append("</preference>");
		buf.append("<preference>");
		buf.append("<name>articleId</name>");
		buf.append("<value>");
		buf.append(articleId);
		buf.append("</value>");
		buf.append("</preference>");
		buf.append("<preference>");
		buf.append("<name>portletSetupShowBorders</name>");
		buf.append("<value>true</value>");
		buf.append("</preference>");
		buf.append("</portlet-preferences>");

		return buf.toString();
	}
}
Liferay Faces Bridge Implementation 5.0.0 + Liferay Faces Portal 5.0.0 + Showcase Common 3.1.1 + Liferay Faces Util 3.4.1 + Mojarra 2.2.20