Pessoal, seguinte,
em um certo ponto da minha aplicação preciso diferenciar tipos de usuário em uma página usando JSTL. Estes diferentes tipos estão armazenados na sessão do usuário, por um atributo chamado “tipoDeUsuario”, que é um objeto Enum que pode ser {CLIENTE,ATENDENTE,ADMINISTRADOR}. Como é um enum, estava precisando compará-lo com o valor deste objeto através de EL.
Ex:
<c:if test="${sessionScope.tipoDeUsuario == br.com.s2k.helpnet.model.TipoDeUsuario.CLIENTE}"></c:if>
Porém, isto não está funcionando, o objeto tipo de usuário ele está achando porém o objeto estático da classe TipoDeUsuario não…
Alguém sabe como posso resolver este problema?
E ae.
Implemente seu Enum desta forma :
public interface GenericEnum {
/**
* Método responsavel por retornar a descrição
* @return String
*/
public String getDescricao();
/**
* Método responsavel por retornar o id
* @return int
*/
public int getValor();
}
public enum TipoFone implements GenericEnum {
RESIDENCIAL {
int valor(){
return 1;
}
String descricao(){
return toString();
}
},
COMERCIAL {
int valor(){
return 2;
}
String descricao(){
return toString();
}
};
abstract int valor();
abstract String descricao();
public String getDescricao() {
return this.toString();
}
public int getValor() {
return this.valor();
}
}
E na hora de compará-los, use simplesmente :
<c:if test="${sessionScope.tipoFone.descricao == br.com.s2k.helpnet.model.TipoFone.COMERCIAL}"></c:if>
Espero ter esclarecido sua dúvida.
Abraço,