Jease uses different parameters which are stored within the database for its configuration. A parameter is a pair of key and value (both strings). Parameters can be created/edited by an administrator via CMS » System » Parameter.

Existing default parameters

Set default SEO(Search Engine Optimization) value.

Set value of

<meta name="description" content="Jease means Java with Ease, so Jease promises to keep simple things simple and the hard things easy. ">
<meta name="author" content="jease">
<meta name="keywords" content="java cms,jease, java portal, zk admin, zk dashboard">

keywords java cms,jease, java portal, zk admin, zk dashboard
description Jease means Java with Ease, so Jease promises to keep simple things simple and the hard things easy. 
author jease

Fully qualified class name of a class which extends jease.cms.service.Authenticator and overwrites the #identity()-method in order to provide custom authorizations. If this parameter is present (but it may be empty), non editors don't see the user-management tab.

If this parameter is not-empty, the CMS runs in maintenance mode. All users (besides administrators) will see the the message stored in the parameter and will be automatically logged out after their next action.

Path or URL to a config file for CKEditor. The config file can be retrieved from the CMS, the web application directory or an external URL. The file should be a valid Javascript file. For a full list of configuration options see the excellent CKEditor Documentation.

CKEDITOR.editorConfig = function( config )
    config.language = 'de';
    config.uiColor = '#AADC6E';

A dynamically compiled jfix.functor.Procedure<Content> which is applied to a content object before it is persisted to the database. This can be used to replace absolute urls with included domain with appropriate interal links with "magic" relocation prefix:

import jfix.functor.*;
import jease.cms.domain.*;

public class Customizer implements Procedure<Content> {

  public void execute(Content content) {

Enter "thread" if you want a threaded view for discussions, otherwise a flat view is used.

Enter a size (e.g. 1024) which is used to scale down bigger images. This way you can control the image size delivered to the client.

A dynamically compiled function which checks the validity of passwords.

import jease.cms.service.Passwords.*;

public class CustomPasswordValidator extends PasswordValidator {
 public Boolean evaluate(String password) {
    return password.contains("+") && password.length() >= 8;

If you want to protect Discussions with a Captcha, you have to register your domain with Recaptcha at and store the public and private key as parameter in Jease.

The total number of revisions Jease should keep for each content object.

The number of days in the past for which Jease should keep content revisions.

The name or path of the default design. It should either be a simple name of a folder contained in /site/web which holds a Page.jsp which defines the overall layout of the site or an absolute path starting with a slash (/) to a Page.jsp. If the second option is used, Jease prevents the layout to be overriden by a Cookie parameter. If this parameter is not present at all, Jease doesn't show any "View"-buttons, so Jease can be used as a Document Management System (DMS) this way.

The path to a resources stored in the CMS which is used as error-page for 404-errors.

[./~/blog/rewriter JEASE_SITE_REWRITER]
Code of Java class which implements jfix.functor.Function<String, String> and can be used to rewrite the resulting HTML for a page.

import jfix.functor.Function;

public class Rewriter implements Function<String, String> {

  public String evaluate(String input) {
    return input.replace("Jease", "Cheese");


Default properties to configure JavaMail.

If you want to use a custom renderer for a content type (e.g. for a non-generic rendering of Items), you can use a dynamic template resolver which maps a content object to your custom renderer.

import jfix.functor.*;
import jease.cms.domain.*;

public class TemplateResolver implements Function<Content,String> {

   public String evaluate(Content content) {
      // Use a custom renderer for Items
      if (content instanceof Item) {
          return "/custom/domain/Item.jsp";
      // Otherwise use the default render
      return jease.Registry.getView(content);

A dynamically compiled script which extends Runnable and is executed every second. Useful to execute periodic tasks.

import java.util.*;
import jease.cms.service.*;  

public class TimerTask implements Runnable {
  private long tick;

  public void run() {   
    // Perform link check every 24 hours
    if(tick % (60 * 60 * 24) == 0) {

Number of bytes which limits the size of files which can be uploaded by users through the CMS.

Determines the dialect of the wiki renderer. Available options are: Confluence, MediaWiki, Textile, TracWiki, TWiki

Determines the pattern for creating internal links. The default is "{0}". If you want to create a dedicated wiki-namespace with your custom resolution of ids, you can use "/wiki/{0}" or other patterns.

Using parameters in templates

If you want to make use of parameters in your templates, you can simply use the following code:

<%= jease.Registry.getParameter("YourParameter") %>
Last modified on 2018-06-08 by Mohammad Ghasemy

Want to contribute?


Do you want to contribute to Jease? Writing documentation is a good place to get started and will help to get people becoming more familiar with Jease. Any contribution is appreciated.