Dúvida Enums e EL

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 :

 &lt;c:if test="${sessionScope.tipoFone.descricao == br.com.s2k.helpnet.model.TipoFone.COMERCIAL}"&gt;&lt;/c:if&gt; 

Espero ter esclarecido sua dúvida.

Abraço,

Esclareceu sim,

Muito obrigado!!