Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como importar header com condição?

Tenho 2 tipo de usuários, o admin e o normal, declarados em uma classe enum.

Criei os headers de cada um, e os importei nas jsps de forma que os métodos de cada tipo de usuário tivesse acesso ao header correspondente ao tipo de usuário.

Os métodos referentes ao admin eu importei usando o <%@ include file... %>.

Só que alguns métodos são comuns aos 2 usuários, como por exemplo uma lista. Aí eu não posso chamar diretamente um header, eu preciso fazer uma verificação do campo tipo e puxar o header correspondente.

Pensei em usar um <c:if , mas o header puxa parte do html, e ele não funcionaria.

Como resolver isso sem gambiarras?

2 respostas
solução!

Olá Thiago,

pelo que eu entendi do seu problema você quer criar uma espécie de menu superior específico para cada usuário. E no caso existem alguns links comuns para todos os tipos, alguns links específicos para admin e outros para o normal. Seria isso?

Se for isso, o que você pode fazer é justamente os links que são comuns você deixa direto no html, sem verificar nada, e importa o que for específico do seu usuário. Para o import, em algum lugar você teria que fazer a verificação com <c:if> do tipo e quais links ele vai trazer.

Obrigado. Deu certo, mas fiz de outro jeito.

Dentro do header eu abri 2 < c:if >, um para o usuário normal, e um para o admin. Coloquei o navbar correspondente a cada um dentro e pronto, deu certo.

Segue código:

<c:if test="${usuarioLogado.usuario.tipo=='NORMAL'}">
    <ul>
        <li>Home</li>
        <li>PAG1</li>
        <li>PAG2</li>
    </ul>
</c:if>

<c:if test="${usuarioLogado.usuario.tipo=='ADMIN'}">
    <ul>
        <li>Home</li>
        <li>PAG3</li>
        <li>PAG4</li>
    </ul>
</c:if>

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software