Pergunta

Esta pergunta já tem uma resposta aqui:

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 %>}">...
Foi útil?

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
scroll top