Calling a Static Method From EL

DZone 's Guide to

Calling a Static Method From EL

· Java Zone ·
Free Resource

In my previous post I showed how to pass parameters in EL methods. In this post, I will describe how to call static methods from EL.

Step 1: Download Call.java and ELMethod.java

Download the classes Call.java and ELMethod.java, and copy them to your project.

Step 2: Add an instance of Call.java as an application scoped bean

There are many ways to do this, depending on this technology you are using. Here are some examples:

How to set request scope in JSP

request.setAttribute("call", new Call());  

How to set session scope in JSP

session.setAttribute("call", new Call()); 
How to set application scope from Servlet
this.getServletContext().setAttribute("call", new Call())  

How to set application scope from JSP

 <jsp:useBean id="call" class="Call" scope="application" />  

How to set application scope in Seam

Add these annotations to your class


Step 3: Call any static method from EL as follows

Let us say you have a static method which formats date.

   package com.mycompany.util;  

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtils {
public static String formatDate(String format, Date date) {
return new SimpleDateFormat(format).format(date);

You can call the above static method from EL as follows. Here “account” is a request scoped bean with a Date property call “creationDate”.

 ${call["com.mycompany.util.DateUtils.formatDate"]["MMM, dd"][account.creationDate]}  

In general the format is:


  • Use map notation with [square brackets] when passing arguments to ${call}
  • First argument is the full package name + “.” + method name
  • If the static method you are calling takes arguments, simply pass those arguments using more [square brackets]
  • Overloaded methods are not supported, i.e. you cannot call methods where two methods with the same name exist in the class



From http://www.vineetmanohar.com/2010/08/calling-static-methods-from-el/


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}