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

EL pega direto da requisição?

No vídeo, o instrutor trocou o código

codigo1

<%
 //scriplet
 String nomeEmpresa = (String)request.getAttribute("empresa");
 System.out.println(nomeEmpresa);
%>

<html>
    <body>
        Empresa ${ 3 + 3 } cadastrada com sucesso!
    </body>
</html>

por

(codigo2)

<html>
    <body>
        Empresa ${ empresa } cadastrada com sucesso!
    </body>
</html>

e deixou de usar Scriptlet.

Porém, no código2, em nenhuma linha estamos definindo a variável empresa, pegando da requisição.

Por que não é necessário usar (String)request.getAttribute("empresa"); ? A expression language pega direto da requisição?

E onde está armazenada essa variável?

3 respostas

Na prática os códigos são similares, porém com uma sintaxe diferente.

Ambos pegam a informação do Servlet:

        request.setAttribute("empresa", empresa.getNome());

Oi. Percebi que não postei uma parte do código. Então minha dúvida não ficou clara.

A dúvida é:

Por que no código1 foi necessário CRIAR a variável

String nomeEmpresa = (String)request.getAttribute("empresa")

para na hora de mostrar, usar

<h1>Empresa <% nomeEmpresa %> cadastrada com sucesso!</h1>

e no código2 foi apenas

Empresa ${ empresa } cadastrada com sucesso!

No código2, não criamos nenhuma variável empresa. De onde ela busca valores

solução!

esse ${empresa} vem do

request.setAttribute("empresa", empresa.getNome());

não é uma criação da variável, é a chamada de um atributo do request que foi setado no servlet