Note: This document is part of the Liferay Core Development Guidelines

Introduction #

This article describes the main technologies used within Liferay as well as which of their features of them are being used. As a Liferay Core developer you should use this feature set whenever you want to extend the existing functionality of Liferay or to implement a new functionality.

Frontend #

Struts and Tiles #

Most Liferay portlets are developed using Struts through a custom bridge for portlets called StrutsPortlet.

Features Not Used:

  • Struts Forms: Liferay almost never uses Struts Forms. Try to avoid them as much as possible.
  • Validation: We do validation in the Service Layer

Taglibs #

Liferay uses Taglibs extensively. The standard JSTL library is used, mainly for tags such as c:if and c:when / c:otherwise

Javascript #

Business Layer #

Spring #

Features Not Used:

  • Aspects: They will be probably introduced in the near future.

Database Access #

Hibernate #

Hibernate is used to access the database in most situations.

Features Not Used:

  • Criteria API: We found some problems with some of the supported databases


JDBC is used directly to perform custom queries. See the Finder classes.


It's sometimes used when using JDBC instead of Hibernate.

Use very simple SQL to guarantee that it'll work in all of Liferay's supported databases.

Development #

The following tools are used to develop Liferay's core:

  • Ant
  • Java 5
  • Tomcat
  • MySQL
0 Attachments
Average (2 Votes)
The average rating is 3.0 stars out of 5.
Threaded Replies Author Date
This is a useful high-level overview but it... Istvan Tech November 29, 2013 1:15 AM

This is a useful high-level overview but it would be good to have some Liferay version info too, so it could be measured up approximately what is the chance that the content became out-of-date.
Posted on 11/29/13 1:15 AM.