Получите доступ к значению Enum, используя EL с JSTL - PullRequest
102 голосов
/ 24 сентября 2008

У меня есть Enum с именем Status, определенным так:

public enum Status { 

    VALID("valid"), OLD("old");

    private final String val;

    Status(String val) {
        this.val = val;
    }

    public String getStatus() {
        return val;
    }

}

Я хотел бы получить доступ к значению VALID из тега JSTL. В частности, атрибут test тега <c:when>. Э.Г.

<c:when test="${dp.status eq Status.VALID">

Я не уверен, возможно ли это.

Ответы [ 12 ]

0 голосов
/ 15 июня 2016

В классе Java:

    public class EnumTest{
    //Other property link
    private String name;
    ....

        public enum Status {
                ACTIVE,NEWLINK, BROADCASTED, PENDING, CLICKED, VERIFIED, AWARDED, INACTIVE, EXPIRED, DELETED_BY_ADMIN;
            }

        private Status statusobj ;

    //Getter and Setters
}

Итак, теперь POJO и enum obj созданы. Теперь EnumTest вы установите в объекте сеанса, используя класс сервлета или контроллера session.setAttribute ("enumTest", EnumTest);

На странице JSP

<c:if test="${enumTest.statusobj == 'ACTIVE'}">

//TRUE??? THEN PROCESS SOME LOGIC
0 голосов
/ 24 ноября 2009

Я вообще считаю плохой практикой смешивать код Java в файлы jsps / tag. Использование 'eq' должно помочь:

<c:if test="${dp.Status eq 'OLD'}">
  ...
</c:if>
...