Como faz em JSTL

10 respostas
E

Bom dia pessoal.
Seguinte, eu sou meio ligo no esquema de JSTL e preciso descobrir como funciona isso.

Eu tenho uma variavel de sessão chamada AdministradorMarca, eu gostaria de verificar no meu JSP via JSTL se essa minha variavel é nula. hoje eu estou fazendo assim:

<%

if ( session.getAttribute(AdministradorMarca) != null ){

out.println(((Administrador)(session.getAttribute(AdministradorMarca))).getNome());

} else { response.sendRedirect(""Erro.jsp); }

%>

com eu tranformo isso para JSTL?

Por favor, me ajudem. uahuahauhauauahauah

10 Respostas

marciobarroso
<c:if test="${AdministradorMarca == null}">

faça algo

</c:if>

ou

<c:choose>

<c:when test="${AdministradorMarca == null}">

// Se o objeto AdministradorMarca for null executa este bloco

</c:when>

<c:otherwise>

// Se não for null executa este

</c:otherwise>	

</c:choose>

[]'s

F

<c:choose>
<c:when test="${AdministradorMarca == null}">
faça algo
</c:when>
<c:otherwise>
faça outra coisa rs
</c:otherwise>
</c:choose>

[]'s

mcruz

Você tb pode usar o operador lógico multiuso empty:

<c:if test="${empty AdministradorMarca}" ... </c:if>>

E

Legal obrigado.
Mas incomodando mais um pouco. Quando eu entro no if de aceitação (AdministradorMarca != null) … eu tenho que imprimir o nome da pessoa.

Eu fiz assim: out.println((( Administrador ) ( session.getAttribute(“AdministradorMarca”) ).getNome());

como eu faria isso em JSTL?

Seria

<c:out value="${AdministradorMarca.getNome()}"/>

Fiz isso mais deu erro.

Podem me ajudar?

mcruz

Basta usar ${AdministradorMarca.nome} em qualquer lugar.

gui.vms

Tirou minhas duvidas também. obrigado

seufagner

O ideal é tu mesclar jstl com tags padrao do jsp para remover os scriptlets, se é que esta foi tua intenção…

<jsp:useBean id=“AdministradorMarca” class=“pacote.Administrador” scope=“session” />
<jsp:setProperty name=“AdministradorMarca” property="*" />

<c:choose>
<c:when test="${not empty AdministradorMarca}">
<c:out value="${AdministradorMarca.nome}" />
</c:when>
<c:otherwise>
<jsp:forward page=“Erro.jsp” />
</c:otherwise>
</c:choose>

igual a:

<%

if ( session.getAttribute(AdministradorMarca) != null ){

out.println(((Administrador)(session.getAttribute(AdministradorMarca))).getNome());

} else { response.sendRedirect(""Erro.jsp); }

%>
seufagner

Se tiver em um escopo de hierarquia superior o mesmo “AdministradorMarca”, vai dar bronca…

seufagner

tu tem que usar um <jsp:useBean…> para pegar o Bean do tipo que voce deseja…

caso tu utilize o ${sessionScope.AdministradorMarca} vai dar erro, pois na verdade ele é um Map, logo retorna um Object…

se utilizar ${AdministradorMarca.nome} e, vai saber, existir outro cara com o mesmo nome em outro escopo, vai dar bronca… (como citei o post do camarada acima)

tenta utilizando as tags padrao do jsp, como no meu post acima (eu editei)

emersonvs:
Legal obrigado.
Mas incomodando mais um pouco. Quando eu entro no if de aceitação (AdministradorMarca != null) … eu tenho que imprimir o nome da pessoa.

Eu fiz assim: out.println((( Administrador ) ( session.getAttribute(“AdministradorMarca”) ).getNome());

como eu faria isso em JSTL?

Seria

<c:out value="${AdministradorMarca.getNome()}"/>

Fiz isso mais deu erro.

Podem me ajudar?

seufagner

leia-se :

${sessionScope.AdministradorMarca.nome} vai dar erro, pois…

[editado]

Criado 6 de dezembro de 2006
Ultima resposta 6 de dez. de 2006
Respostas 10
Participantes 6