Capability

Development and Tooling

Liferay offers a comprehensive toolkit to extend or customize your digital experience. Build applications quickly with low-code/no-code features like Objects, or leverage developer tools like Liferay Workspace and Blade CLI for further customizations.

For users on PaaS or running Self-Hosted, Liferay also offers tools deploying customizations.

Category
Category
Liferay UI Icon Lists
Liferay UI Icon Lists An icon list displays icons in a horizontal list, instead of in a pop-up navigation menu like an icon menu. You can see an example of an icon list menu in a message board...
Liferay UI Icon Menus
Liferay UI Icon Menus You can add a pop-up navigation menu to your app with the liferay-ui:icon-menu tag. Icon menus display menu options when needed, storing them away in a collapsed menu when...
Using Liferay Util Body Bottom
Using Liferay Util Body Bottom The body bottom tag is not a self-closing tag. It lets you add additional HTML or scripts to the bottom of the body tag. content placed between the opening and...
Clay Form Elements
Clay Form Elements The Liferay Clay tag library provides several tags for creating form elements. An example of each tag is shown below. Checkbox Checkboxes give the user a true or false input. "...
Liferay UI Icons
Liferay UI Icons The Liferay UI taglibs provide several icons you can include in your apps. To add an icon to your app, use the liferay-ui:icon tag and specify the icon with either the icon,...
Clay Management Toolbar
Clay Management Toolbar The Management Toolbar gives administrators control over search container results in their apps. It lets you filter, sort, and choose a view type for search results, so you...
Liferay UI Tag Library
Liferay UI Tag Library The Liferay UI tag library provides tags that implement commonly used UI components. These tags make your markup consistent, responsive, and accessible. You can find a list...
Liferay UI Icon Help
Liferay UI Icon Help The icon help tag lets you communicate additional information to your users in an unobtrusive way. It renders as an iconic question mark that provides more information through...
Liferay UI Tabs
Liferay UI Tabs Tabs create dividers that organize content into individual sections. Content can be embedded or included from another JSP. To add tabs to your app, use the tag and specify each...
Using Liferay Util HTML Top
Using Liferay Util HTML Top The HTML top tag is not a self-closing tag. The content placed between the opening and closing of this tag is moved to the tag. When something is passed using this...
Using Liferay Util Body Top
Using Liferay Util Body Top The body top tag is not a self-closing tag. The content placed between the opening and closing of this tag is moved to the top of the body tag. When something is passed...
Using Liferay Util HTML Bottom
Using Liferay Util HTML Bottom The HTML bottom tag is not a self-closing tag. Content placed between the opening and closing of this tag is moved to the bottom of the tag. When something is passed...
Using Liferay Util Buffer
Using Liferay Util Buffer The buffer tag is not a self-closing tag. The content placed between the opening and closing of this tag is saved to a buffer and its output is assigned to the Java...
Using Liferay Util Include
Using Liferay Util Include The include tag lets you include other JSP files in your portlet's JSP, theme, or web content. This can increase readability as well as provide separation of concerns for...
Sharing Localized Messages
Sharing Localized Messages As you work on an application you might have multiple modules, each of which with its own language keys. Instead of maintaining various language properties files in...
Using Localized Messages in an MVC Portlet
Using Localized Messages in an MVC Portlet Liferay's localization framework is for creating localized messages in your MVC portlet. Deploy the Sample Code Then, follow these steps: Download...
PortletMVC4Spring Project Anatomy
PortletMVC4Spring Project Anatomy PortletMVC4Spring portlets are packaged in WARs. Liferay provides Maven archetypes for creating projects configured to use JSP/JSPX and Thymeleaf templates. Their...
Adding a Language
Adding a Language Liferay ships with over 50 languages out-of-the-box. Translation is complete for many of these languages, and some are still in the translation process. Each language has its own...
Aggregating Resource Bundles
Aggregating Resource Bundles When working with a module that shares localized messages, the bnd header must specify the resource bundles you want to associate with the module. Liferay provides a...
React Component Utilities Reference
React Component Utilities Reference Several useful tools are available to help you build high-performance components and applications in Liferay DXP using React: frontend-js-react-web module ...
Generating Translations Automatically
Generating Translations Automatically Liferay DXP supports 50 languages out-of-the-box. Each locale has its own language properties file containing keys for its language. When you create an...
PortletMVC4Spring Configuration Files
PortletMVC4Spring Configuration Files A PortletMVC4Spring application has these descriptors, Spring contexts, and properties files in its WEB-INF folder: web.xml → Web application descriptor ...
APIs as OSGi Services
APIs as OSGi Services After you've learned what a module is and how to deploy one, you can use modules to define APIs and implement them. Liferay APIs are OSGi services, defined by Java interfaces...
Fundamentals
Fundamentals Liferay development projects consist primarily of simple .jar files. These contain a few extra configuration files that make them OSGi modules, but they're easily understandable by...
Deploying WARs (WAB Generator)
Deploying WARs (WAB Generator) You can create applications as Java EE-style Web Application ARchive (WAR) artifacts or as Java ARchive (JAR) OSGi bundle artifacts. Bean Portlets, PortletMVC4Spring...
Configuring Dependencies
Configuring Dependencies Liferay provides a container where modules can publish and consume functionality through their Java packages. Modules can leverage packages from other modules or...
Architecture
Architecture The Liferay DXP/Portal architecture has three parts: Core: Bootstraps DXP and its frameworks. The Core provides a runtime environment for managing services, UI components, and...
Resolving Third Party Library Package Dependencies
Resolving Third Party Library Package Dependencies An application can rely on multiple OSGi modules. Resolving their Java package dependencies can be challenging. In a perfect world, every package...
Finding Artifacts
Finding Artifacts To use external artifacts in your project, you must configure their dependencies in your build.gradle Gradle script. Before specifying an artifact as a dependency, you must first...
Specifying Dependencies
Specifying Dependencies You must satisfy all dependencies to compile and deploy a module successfully. After you find the dependency artifacts, add them as dependencies in your Gradle build file....
Module Projects
Module Projects Liferay applications and customizations are OSGi modules: .jar files containing Java code and some extra configuration for publishing and consuming APIs. A module project comprises...
Semantic Versioning
Semantic Versioning Semantic Versioning is a three tiered versioning system for incrementing version numbers based on the degree of API change made in a releasable software component. It's a...
Importing Packages
Importing Packages You often find yourself in a position of needing functionality provided by another module. To access this functionality, you must import packages from other modules into your...
JARs Excluded from WABs
JARs Excluded from WABs [Liferay-generated web application bundles (WABs) are stripped of third party JARs that contain packages that Liferay exports already. Deploying the same third party...
Using the Gogo Shell
Using the Gogo Shell The Gogo shell provides a way to interact with the module framework. Among other things, you can Dynamically install/uninstall bundles (modules) Examine package...
Command Line Gogo Shell
Command Line Gogo Shell If you're in a development environment, you can interact with the module framework locally from the command line. Gogo shell should only be run from the command line in...
Creating Video Shortcut Providers
Creating Video Shortcut Providers Liferay DXP 7.4+ By default, Liferay's external video shortcuts support YouTube, Vimeo, Facebook, and Twitch. However, you can extend this feature to support...
Using the Script Engine
Using the Script Engine Liferay provides a robust script engine for executing Groovy scripts. You can execute scripts to perform maintenance tasks involving data cleanup, user maintenance...
Troubleshooting JVM Issues with Glowroot
Troubleshooting JVM Issues with Glowroot Liferay DXP 2023.Q4+/Portal GA100+ Glowroot displays a dashboard for identifying system issues quickly. Click the Errors tab to see a list of tracked...
Developing Glowroot Plugins
Developing Glowroot Plugins Liferay DXP 2023.Q4+/Portal GA100+ Glowroot provides various out-of-the-box plugins. You can also build your own with the use of their plugin API. Here are some tips...