Question: Given the following `enum`.

```
public enum Constants
{
    PAGE_LINKS(10);
    //Other constants as and when required.

    private final int value;

    private Constants(int value){
        this.value = value;
    }

    public int getValue(){
        value;
    }    
}

```

This `enum` is placed under an application scoped bean like so,

```
@ManagedBean
@ApplicationScoped
public final class ConstantsBean
{
    private Constants constants;

    public ConstantsBean() {}

    public Constants getConstants() {
        return constants;
    }
}

```

How to access the value of `PAGE_LINKS` in EL?

```
<p:dataGrid pageLinks="#{}".../>

```

What should be written in `#{}`? Is it possible?

---

**EDIT:**

Modifying the bean in the following way,

```
@ManagedBean
@ApplicationScoped
public final class ConstantsBean
{
    public ConstantsBean() {}

    public int getValue(Constants constants) {
        return constants.getValue();
    }
}

```

and then accessing in EL like so,

```
<p:dataGrid pageLinks="#{constantsBean.getValue('PAGE_LINKS')}".../>

```

somehow works but I don't believe in this ugly way.

Answer: 
This, as [commented](https://stackoverflow.com/questions/23123838/how-to-access-enum-constants-in-el/23298008#comment35352999_23123838) by Sazzadur,

```
#{constantsBean.constants.value}

```

should work. Your enum has a proper public getter for its `value` property. However, you should also make sure that you set the `constants` property of the managed bean to the desired enum value. You namely didn't do that in the code snippet posted so far and thus it remains `null`. EL does by design not print anything when a (base) property is `null`.

Here's how you could set it:

```
@ManagedBean
@ApplicationScoped
public final class ConstantsBean {
    private Constants constants = Constants.PAGE_LINKS;

    public Constants getConstants() {
        return constants;
    }
}

```

I'd however rename the property (and getter) to `pageLinks` for better self-documentability.

```
#{constantsBean.pageLinks.value}

```

---

An alternative is to use [OmniFaces `<o:importConstants>`](http://showcase.omnifaces.org/taghandlers/importConstants), based on your question history you're already familiar with OmniFaces and probably also already using it in your current project.

```
<o:importConstants type="com.example.Constants" />
...
#{Constants.PAGE_LINKS.value}

```

This way you don't need to wrap the thing in an application scoped bean.
Since Primefaces 6.0 you can also use PrimeFaces `importEnum` (Before that import was in "Primefaces Extensions").

<https://www.primefaces.org/showcase/ui/misc/importEnum.xhtml>