EL: imprimir valor de variável [RESOLVIDO]

11 respostas
Y

Galera, fui fazer um pequeno teste com a EL, e o resultado foi a impressão de nada, hehehe.

Simplesmente fiz isso:

  • teste.jsp -
<% String teste = "Um teste!"; %>
${teste}

Só que não foi impresso nada na tela!

Porém, quando requisitei a URL definida abaixo e alterei o código:

  • teste.jsp?nome=umteste -
${param.nome}

Aí ele imprimiu o valor “umteste”!

Tentei o seguinte:

  • teste.jsp -
<% String teste = "Um teste!"; %>
${pageContextScope['teste']}

Mas também não obtive sucesso.

Como eu faço pra imprimir uma variável declarada em um scriptlet?

11 Respostas

Z

tente

Y

zetamayossi:
tente

Cara, vlw pela tentativa de ajuda, mas veja o nome do tópico: “EL: …”

Eu quero saber como imprimir o valor de uma variável através de EL.

Q

Simplesmente não é possível fazer isto! Variáveis declaradas em scriptlet não são acessíveis via el! Variáveis de scriptlet são variáveis locais do _jservice().
t+

Y

quebrado:
Simplesmente não é possível fazer isto! Variáveis declaradas em scriptlet não são acessíveis via el! Variáveis de scriptlet são variáveis locais do _jservice().
t+

Ah… entendi. Obrigado!

Y

Obrigado pela ajuda mas… sim, é possível. Sim, variáveis declaradas no scriptlet “podem” ser acessíveis via EL.

Assim:

// - declaro a variável -
<% String nome = "Yky Mattshawn" %>

// - disponibilizo-a na EL -
<% pageContext.setAttribute("nome", nome); %>

// - acesso na EL -
${nome}

Exemplo de utilização:

<% String nome = request.getParameter("info").substring(5); %>
<% pageCOntext.setAttribute("nome", nome); %>

Nome: ${nome}

Ou ainda pode usar:

Nome: ${pageContext['nome']}
Q

vc esta colocando a variavel no pageContext ae nao vale.
quero ver vc fazer este acesso sem colocar em nenhum tipo de objeto implicito.
ex: pageScope, requestScope, sessionScope e assim vai.

Y

quebrado:
vc esta colocando a variavel no pageContext ae nao vale.
quero ver vc fazer este acesso sem colocar em nenhum tipo de objeto implicito.
ex: pageScope, requestScope, sessionScope e assim vai.

“ae nao vale?” Onde começou a competição?

A minha pergunta houvera sido deveras clara: “Como eu faço pra imprimir uma variável declarada em um scriptlet?”

Então é óbvio que, tendo conhecimento do pageContext, a resposta correta seria a hoje por mim postada!

“quero ver vc fazer este acesso sem colocar em nenhum tipo de objeto implicito.”

Fala sério né… ninguém está aqui pra fazer “guerrinha de conhecimento”. ¬¬

Q

Calma! so queria ajudar :roll: . so pensa nos efeitos colaterais da sua solução.
8) e serão efeitos desagradáveis.

Y

Tah ok então, agredeço pela ajuda.

Mas não haverão efeitos colaterais na minha solução não… hehe.

É que tpw… não é uma solução pq não era um problema. Era apenas uma curiosidade que me surgira. Pq fiquei pensando no seguinte… suponha que eu tenha instanciado um Bean, e precise fazer algumas ações com ele que, por algum motivo, tenham de ser estritamente via scriptlet. Em meio a estas ações, eu teria de obter algum valor do Bean via scriptlet, porém eu quereria usar apenas EL para a impressão de valores. Como eu faria isso com esse “tal valor”? Pronta a dúvida! Eu queria sabe como acessar via EL um valor setado no scriptlet.

Agradecido à atenção, quebrado.

R

para imprimir varivel usando EL, eu nao se que sozinhu é possive. mas pode-se usar o taglib core + EL:

<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

//declara a var vteste
<c:set var=“vteste” value="${param[‘teste’]}"/>

//imprime
<c:out value="${vteste}"/>

quando voce declara uma var no scriplet e deseja imprimir sem ter que usar o famoso
<% out.write(nomeVar); %>

simplesmente pode assim:

<%=nomeVar %>

abraços

R

ah se voce tem o java beans com os getters e setters…

suponha que voce tem um

public String getNome{

return nome;

}

entao:

${nomeBean.nome}

//nao use get com o EL.
${nomeBean.getNome}ERRADO

abraço

Criado 13 de janeiro de 2007
Ultima resposta 3 de abr. de 2007
Respostas 11
Participantes 4