Enumera dentro de um jsp [duplicado
Pergunta
Esta pergunta já tem uma resposta aqui:
- Como fazer referência a constantes em El? 12 respostas
Existe uma maneira de usar valores de enumeração dentro de um JSP sem usar scriptlets.
por exemplo
package com.example;
public enum Direction {
ASC,
DESC
}
Então, no JSP, eu quero fazer algo assim
<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
Solução
Você pode implementar o texto amigável para uma direção dentro da enumeração como campo:
<%@ 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>
<% } %>
Mas isso mistura a vista e o modelo, embora, para usos simples, possa ser independente da visão ("ascendente", "descendente", etc.).
A menos que você não goste de colocar o Java Straight em suas páginas JSP, mesmo quando usado para coisas básicas, como comparações.
Outras dicas
Você pode simplesmente verificar o valor da enumeração como uma string:
<c:if test="${foo.direction == 'ASC'}">...
Pode ser feito assim, eu acho
<c:set var="ASC" value="<%=Direction.ASC%>"/>
<c:if test="${foo.direction == ASC}"></c:if>
A vantagem é quando refatorá -lo renomeará aqui também
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow