- Technical Overview
- Quick Start
- Editors Guide
-
Administration Guide
-
Section One: Server Settings
- The “Web Project Management” Module
- The “Manage Users” Module
- The “E-mail Settings” Module
- The “Manage Portlets” Module
- The “Edit Super Administrator Properties” Module
- The “Server and Cache Status” Module
- The “Password Policy” Module
- The “Manage Roles” Module
- The “Report a Problem” Module
- The “Jahiapedia” Module
- The “About Jahia” Module
- Section Two: Site Settings
-
Section One: Server Settings
- Contributors Guide
- Multi Channel Rendering
- Jahiapedia V6 Archive
- Portlet Guide
-
Templating and Integration Guide
- Part 1: Concepts
- Part 2: Modules
- Part 3: Templates and Studio
- Part 4: Content Definitions and Views
- Part 5: Advanced Techniques
- Part 6: Setting up an integration environment
- Part 7: Step by step integration
- Further reading and resources
- Modules List
Portlet Guide |
Download the pdf version |
Jahia includes an embedded portal server, which is based on the Apache Pluto reference implementation of the JCR Portlet API specification. The goal of this implementation is to offer support for integrators who need to embed portlets on content pages. This means that any portlet API compliant application may be integrated with Jahia in a few simple steps.
What’s in this documentation?
Jahia is quite unique in its ability to integrate with both traditional CMS content and portlets on the same page. This document aims to explain how to work with portlets.
Should you have questions, please do not hesitate to contact us.
What this guide is not
This guide is not a tutorial on the full portlet API, it is merely an introduction to portlet deployment and development with Jahia. In the “Additional resources” section at the end of this guide we have listed a few resources you might find interesting if you would like to learn more about the portlet standard.
Portlets versus modules
In order to differentiate portlets from modules, we offer the following table that summarizes the differences:
|
|
Portlet |
Module |
|---|---|---|
|
Classification |
Older technology, extension to traditional Web server model using well defined approach based on strict isolation mode |
Using newer, loosely defined "Web 2.0" techniques, integration at both server or client level |
|
Philosophy/Approach |
Approaches aggregation by splitting role of Web server into two phases: markup generation and aggregation of markup fragments |
Uses APIs provided by different modules as well as content server to aggregate and reuse the content |
|
Content dependencies |
Aggregates presentation-oriented markup fragments (HTML, WML, VoiceXML, etc.) |
Can operate on pure content and also on presentation-oriented content (e.g., HTML, JSON, …) |
|
Location dependencies |
Traditionally content aggregation takes place on the server |
Content aggregation can take place either on the server or on the client, but usually happens on the server |
|
Aggregation style |
"Salad bar" style: Aggregated content is presented 'side-by-side' without overlaps |
"Melting Pot" style - Individual content may be combined in any manner, resulting in arbitrarily structured hybrid rendering and editing |
|
Event model |
Read and update event models are defined through a specific portlet API |
CRUD operations are based on JCR architectural principles, and on the client REST interfaces allow content interactions |
|
Relevant standards |
Portlet behavior is governed by standards JSR 168, JSR 286 and WSRP, although portal page layout and portal functionality are undefined and vendor-specific |
Base standards are JCR API, REST, JSON and XML. Defacto standards include JQuery as a Javascript framework |
|
Portability |
Portlets developed with the portlet API are in theory portable to any portlet container |
Modules are Jahia specific |
|
Repositories |
Portlet repositories have been a pipe dream for a long time, but despite multiple efforts they have never taken off and they stay usually specific to a portlet container implementation. |
Modules are available on Jahia’s forge, developers and integrators are encouraged and free to post them there, or anywhere else they wish. |
|
Performance |
A page will be fully dependent of the rendering speed of each portlet to achieve good performance, which may be difficult if closed source portlets are present in the system. |
Modules have built-in support for page caching if they re-use Jahia-stored content, which is the general case. |
In general, integrators looking for a powerful and rapid integration solutions will probably want to use modules. The main use case for portlet usage is the integration of legacy applications that are only available as portlets. In the case of other systems (servlets, web services) it is preferred to use modules as the integration will be more robust, easier to re-use and deploy and of course to maintain.

