GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Notizen

Custom Tags

Luis Felipe Guariento Desenvolvimento de Software Concursos Públicos Portugiesisch 13 Seiten

Custom Tags

Inhalt der Notizen (13)

Seite 1

Agenda

Aqui discutiremos:

Custom Tags.

O descritor de Tag Library e seus elementos.

Mapeamento entre TLD (Tag Library Descriptor) e o arquivo JSP.

Exemplo de um arquivo TLD e sua localização

Seite 2

Custom Tags

Nós talvez necessitemos usar uma custom tag que não é parte do JSTL.

Seite 3

TLD

Há três conceitos associados com custom tags:

TLD ( Tag Library Descriptor ).

Como usar a tag na página JSP.

O Tratador de tags ( Tag Handler )

É importante olhar o TLD de modo que se possa saber como a tag pode ser usada.

Seite 4

Exemplo de TLD

Abaixo temos um exemplo de um arquivo TLD:

< uri >: refere-se a um nome único que será usado mais tarde na página JSP.

Tags obrigatórias: < tlib-version >, < short-name > e < uri >

Custom Tags

Seite 5

Exemplo de TLD (2)

Tags obrigatórias: < name >< tag-class > e < body-content >

Opcional: < description >

Custom Tags

Seite 6

Explicação da TLD

As tags < tlib-version >, < short-name > e < uri > são obrigatórias.

A tag < uri > é o termo usado na diretiva taglib declarada na página JSP, não é uma localização, apenas um nome.

Dois arquivos *.tld na mesma aplicação web e com o mesmo valor para a tag < uri > não são permitidos.

< name >, < tag-class > e < body-content > são tags obrigatórias.

< name > será utilizado para chamar a tag na página JSP ( no nosso exemplo, 'car' é o nome que usaremos na JSP ).

< tag-class > é o tratador de tag ( tag handler ) o qual o container chamará para tratar a tag.

Para o elemento < tag >:

Os dois subelementos< name > e < tag-class > são obrigatórios e devem aparecer exatamente uma vez. Podem aparecer zero ou mais elementos < variable > e < attribute >. Todos os outros elementos serão opcionais podendo aparecer no máximo uma vez.

Seite 7

< attribute >

< body-content > estabelece que tipo de conteúdo o corpo da tag deve ter ( empty, scriptless, JSP, tag-dependant ).

O elemento < attribute > define os atributos da tag.

O elemento < attribute > pode aparecer zero ou mais vezes por elemento < tag >.

'name' especifica o nome do atributo.

'required' estabelece se o atributo é obrigatório na tag ou não.

'rtexprvalue' é 'run time expression value' o qual estabelece se o atributo aceita ou não valores em tempo de execução.

Seite 8

Arquivo TLD mapeado para o arquivo JSP

Abaixo vemos o mapeamento entre o arquivo TLD e o arquivo JSP.

Custom Tags

Seite 9

< jsp:attribute >

Caso não aja tag < rtexprvalue >, então o padrão é false, ou seja, apenas aceita String literal e não valores avaliados em tempo de execução.

A tag < jsp:attribute > é uma nova action padrão que pode ser utilizada para declarar atributos no corpo da tag mesmo quando o elemento < body-content > tiver um valor de empty.

Seite 10

< jsp:attribute > (2)

O elemento jsp:attribute é o único elemento que pode ser declarado no corpo de uma tag mesmo quando for criada vazia.

Custom Tags

Seite 11

< body-content >

O elemento < body-content > pode ter um valor:

empty ( a tag não deve possuir um corpo ).

scriptless ( a tag não permite scriptlets, declarations, expressions mas permite EL, template text, custom e standard actions ).

JSP ( todo conteúdo JSP é permitido )

tagdependant ( EL e tags / actions não serão avaliados ).

O container procurará por TLD's em locais apropriados.

Seite 12

Localização de TLD's

É necessário armazenar TLD's em um desses quatro locais:

Dentro de WEB-INF

Dentro de algum subdiretório de WEB-INF

Dentro de WEB-INF/lib/JAR/META-INF

Dentro de qualquer subdiretório de WEB-INF/lib/JAR/META-INF

Seite 13

Concluindo

Aprendemos como criar TLDs.

Discutimos os detalhes de uma TLD e sua localização.

Informationen

Beschreibung
Concursos Públicos Desenvolvimento de Software (OCEJWCD 6 ONLINE COURSE) Notiz am Custom Tags, erstellt von Luis Felipe Guariento am 08/03/2018.
Aufrufe
1
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck