Вопрос

На этот вопрос уже есть ответ здесь:

Есть ли способ использовать значения Enum внутри JSP без использования скриптлетов?

например ,

package com.example;

public enum Direction {
    ASC,
    DESC
}

итак, в JSP я хочу сделать что-то вроде этого

<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
Это было полезно?

Решение

Вы могли бы реализовать удобный для интернета текст для указания внутри перечисления в виде поля:


<%@ page import="com.example.Direction" %>
...
<p>Direction is <%=foo.direction.getFriendlyName()%></p>
<% if (foo.direction == Direction.ASC) { %>
<p>That means you're going to heaven!</p>
<% } %>

но это смешивает представление и модель, хотя для простого использования оно может быть независимым от представления ("По возрастанию", "По убыванию" и т.д.).

Если только вам не нравится использовать прямую Java на своих JSP-страницах, даже когда она используется для базовых вещей, таких как сравнения.

Другие советы

Вы можете просто свериться со значением enum в виде строки:

<c:if test="${foo.direction == 'ASC'}">...

Я думаю, это можно сделать вот так

<c:set var="ASC" value="<%=Direction.ASC%>"/>
<c:if test="${foo.direction == ASC}"></c:if>

преимущество в том, что когда мы проведем рефакторинг, он и здесь переименуется

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top