questão SCWCD5 tags

3 respostas
J

Boa tarde pessoal, queria ver se alguem pode me ajudar com essa questão, eu não estou conseguindo entender ate mesmo depois que vi a resposta correta segundo o simulado:

A custom JSP tag must be able to support an arbitrary number of attributes
whose names are unknown when the tag class is designed. Which two are true? (Choose two.)

A. The <body-content> element in the echo tag TLD must have the value JSP.
B. The echo tag handler must define the setAttribute(String key, String value) method.
C. The <dynamic-attributes>true</dynamic-attributes> element must appear in the echo tag TLD.
D. The class implementing the echo tag handler must implement the javax.servlet.jsp.tagext.IterationTag
interface.
E. The class implementing the echo tag handler must implement the javax.servlet.jsp.tagext.DynamicAttributes
interface.

Se alguem poder explicar, Grato…

opa!!! esqueci da respota: C, E

3 Respostas

rodrigo.ferreira

Boa Tarde,

Seguinte:

Quando você quer criar uma tag que não tenha a quantidade de atributos estáticos, você deverá utilizar este sistema de arquitetura. Normalmente, quando se tem uma tag com quantidade de atributos estáticos, no TLD, deve-se definir:

<...>
    <tag>
       <name>Nome</name>
       <tag-class>NomeDoPacote.NomeDaClasse</tag-class>
       <body-content>JSP</body-content>
       <attribute>
              <name>NomeDoAtributo1</name>
              <required>true</required>
              <rtexprvalue>true</rtexprvalue>
       </attribute>
       <attribute>
              <name>NomeDoAtributo2</name>
              <required>true</required>
              <rtexprvalue>true</rtexprvalue>
       </attribute>
       <attribute>
              <name>NomeDoAtributo3</name>
              <required>true</required>
              <rtexprvalue>true</rtexprvalue>
       </attribute>

Modo de uso deste esquema:

<tag:Metodo atributo1=Valor atributo2=Valor2 atributo3=valor3>Corpo</tag>

Ao usar as configurações do exercício, mapeando a com true e fazer com o seu TagHandler Clássico ou Simples implemente javax.servlet.jsp.tagext.DynamicAttributes você não precisa utilizar esta definição estática. Basta passar o atributo dinamicamente na hora de usar:

<tag:Metodo nomeDeAtributoInventadoAgora=ValorDoAtributo outroAtributoInventado=OutroValor>Corpo</tag>

E depois obter o valor dele normalmente dentro do TagHandler.

Abraço,

J

rodrigo.ferreira
obrigada kra valeu mesmo…

to doido pra marcar logo essa prova mais o que me da mais medo é essa parte de tags acho meio complicado, e ta dificil decorar esse tanto de coisa…rs

alguma dica…

H

O livro Head First JSP & Servlets primeira edição não fala sobre atributos dinamicos e cai na prova, de repente por isso você não conseguiu fazer a questão. Te aconselho a ir no javaranch.com na seção SCWCD e dar uma procurada lá que um dos autores do livro, Bert Bates, postou lá um tutorial completinho pra gabaritar atributos dinâmicos na prova, ta perfeito. Ah sim, eles esqueceram de colocar isso no livro, porém na segunda edição do livro que só tem em inglês eles colocaram esse tópico.

Abraços.
Higor

Criado 16 de janeiro de 2009
Ultima resposta 16 de jan. de 2009
Respostas 3
Participantes 3