Dúvida EL "." e "[]" - Livro Use a Cabeça - Servlets e JSP

8 respostas
Nykolas_Lima

A questão 6 do capitulo 8.

<%
java.util.List list = new java.util.ArrayList().
list.add("a");
list.add("2");
list.add("c");
request.setAttribute("list", list);
request.setAttribute("listIdx", "1");
%>
<%- Insira o código aqui -%>
A. ${list.2}
B. ${list[2]}
C. ${list.listIdx+1}
D. ${list[listIdx+1]}
E. ${list['listIdx' + 1]}
F. ${list[list['listIdx']]}

Respostas certas: B. D. F.

A minha dúvida é, a F não esta errada?
Para mim ela só estaria correta de o “listIdx” estivesse sem as aspas.

Para mim as respostas certas são: B. D.

Alguém pode tirar minha dúvida?

Valeu!

8 Respostas

V

Esta correto, ele procura o atributo de nome ‘listIdx’ quando encontrado o valor de listIdx é 1, o resultado será “2” do atributo ‘list’.

Voce escreveu o codigo para ver o resultado ?

Nykolas_Lima

Mas no livro diz que ele só procura o valor dentro dos “[]” como um atributo da solicitação se ele estiver SEM aspas.

No caso ai ele está com aspas, então ele deveria ser um atributo ou um index de um array ou list.

Ai no caso F. o ‘listIdx’ seria tratado cmo um String, ia tentar buscar ele dentro do list e não ia retornar nada.

Estou errado?

victorwss

foo.bar é o mesmo que foo[“bar”]

Logo list[‘listIdx’] é o mesmo que list.listIdx

No caso de foo[bar], se bar=‘ggg’, isso vai ser o mesmo que foo[‘ggg’] que é igual a foo.ggg

EDIT: Hmmm, calma aí… Ou eu viajei aqui, ou realmente isso daí é um erro no livro.

Nykolas_Lima

victorwss:
foo.bar é o mesmo que foo[“bar”]

Logo list[‘listIdx’] é o mesmo que list.listIdx

No caso de foo[bar], se bar=‘ggg’, isso vai ser o mesmo que foo[‘ggg’] que é igual a foo.ggg

Então a F. está errada?

Porque list[“lisIdx”] não é o mesmo que list[listIdx].

Conclusão, a F. está mesmo errada?

victorwss

Frango:
victorwss:
foo.bar é o mesmo que foo[“bar”]

Logo list[‘listIdx’] é o mesmo que list.listIdx

No caso de foo[bar], se bar=‘ggg’, isso vai ser o mesmo que foo[‘ggg’] que é igual a foo.ggg

Então a F. está errada?

Porque list[“lisIdx”] não é o mesmo que list[listIdx].

Conclusão, a F. está mesmo errada?

Eu editei ao mesmo tempo que você postou.

Nykolas_Lima

ahahahha…

É então, para mim também está errado no livro.

Se alguém mais quiser opinar.

Valeu victor!

victorwss

Confirmei que está errado mesmo.

Nykolas_Lima

victorwss:
Confirmei que está errado mesmo.

http://oreilly.com/catalog/headservletsjsp/errata/headservletsjsp.confirmed:

{420, 428} Question 6, option F;
"${list[list[‘listIdx’]]}“
should read:
”${list[list[listIdx]]}"

Opa victor, valeu mesmo!

agora tenho ctz.

É que aqui no trampo tudo blokiado, então só da pra tirar duvida no guj mesmo. hahaha

valeu!

Criado 3 de julho de 2009
Ultima resposta 3 de jul. de 2009
Respostas 8
Participantes 3