JSP e XHTML

JSP e XHTML

por Alexandre Albano -
Número de respostas: 9
Estou escrevendo .jsps pra gerar algumas interfaces mas o browser não está entendendo que o documento é XHTML 1.1 compliant, apesar de haver aqueles tags iniciais:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
version="XHTML 1.1">

O jsp funciona numa boa, mas eu posso cometer erros nas tags (por ex. tags com caps lock) e o browser não reclama, eu gostaria q o browser acusasse e nem renderizasse a página (funciona assim se eu mudar a extensao pra .xhtml, mas dai as chamadas <%=> do jsp param de funcionar))
Tem jeito ? Errei em alguma coisa?
Obs: usando tomcat 6.0.18
Em resposta à Alexandre Albano

Re: JSP e XHTML

por Victor Williams Stafusa da Silva -
Os browsers são extremamente tolerantes a qualquer lixo defeituoso que você mandar eles exibirem.
Nunca vi um browser recusar um documento por ele não ser bem-formado, por mais mal-formado que ele seja, o browser mesmo assim tenta exibir o que ele conseguir.

Outra coisa, não use scripting <%= > nas páginas a menos que seja para testes. Isso daí é algo considerado obsoleto, prefira usar taglibs.
Em resposta à Victor Williams Stafusa da Silva

Re: JSP e XHTML

por Alexandre Albano -
> Os browsers são extremamente tolerantes a qualquer lixo defeituoso que você mandar eles exibirem.
De fato, mas pensei que com XHTML fosse diferente (ver anexo, propositadamente não pus aspas no valor text)

> Nunca vi um browser recusar um documento por ele não ser bem-formado, por mais mal-formado que ele seja, o browser mesmo assim tenta exibir o que ele conseguir.
Talvez o screenshot elucide alguma coisa... não sei.. veja o s.s. e diga oq vc acha

> Outra coisa, não use scripting <%= > nas páginas a menos que seja para testes. Isso daí é algo considerado obsoleto, prefira usar taglibs.
eu não sabia disso, obrigado pela dica. mas c/ taglib o problema não se resolve: um taglib em um xhtml não sera processado adequadamente pelo container do app server

Anexo Screenshot.png
Em resposta à Alexandre Albano

Re: JSP e XHTML

por Victor Williams Stafusa da Silva -
As taglibs são semelhantes a macros. O container as processa e elas geram texto. O browser não vê (e nem deveria) o que ocorre no servidor. Daí, o que você tem que fazer é garantir que elas sempre gerem um trecho de XHTML que se encaixe perfeitamente na tua página gerando um XHTML válido.

Quanto ao screenshot, realmente nunca tinha visto isto (e página defeituosa é o que não falta por aí). Será que há alguma configuração do browser para isso?
Em resposta à Alexandre Albano

Re: JSP e XHTML

por Cecilia Fernandes -
O erro acontece por causa da ausência de aspas no parâmetro type da tag input.

O correto seria:
<input type="text" name="padrao" />

Isso porque o XHTML exige aspas em todos os parâmetros, não só fechar todas as tags que abrir.

Sobre scriptlets (scripting em geral), é realmente uma péssima prática usá-lo e realmente não é necessário. Infelizmente, ainda encontramos códigos com scriptlets no mercado aos montes, mas não deveríamos.

Dê uma olhada em JSTL e Expression Language. Coloco em um outro post uma referência de Java pra Web.

Quanto ao Doctype, devia funcionar.. tente:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Boa sorte.

Em resposta à Cecilia Fernandes

Re: JSP e XHTML

por Alexandre Albano -
Oi cecilia, agradeco sua preocupacão mas vc não ta entendendo a discussão. Vc provavelmente não leu quando eu escrevi: ... (ver anexo, propositadamente não pus aspas no valor text)
Em resposta à Alexandre Albano

Re: JSP e XHTML

por Marco Aurélio Gerosa -

Pessoal,

A discussão está muito rica e tenho certeza que muitos estão aprendendo com ela. O debate e a troca de informações são incentivados neste curso. Favor, manter a cordialidade.

Marco

Em resposta à Alexandre Albano

Re: JSP e XHTML

por Cecilia Fernandes -
Eu li, até agora, só não tinha notado o fato de que a extensão da página era xhtml - o que poderia ser apontado de forma bem mais gentil sem fonts agressivamente grandes e vermelhas.

O fato de não mostrar o erro na página pode ser resolvido com dois minutos de configuração das validações da sua IDE adicionando os jsps às validações de XML e, no caso de você querer que a página não seja gerada se não foi compatível com XML, você pode configurar seu projeto para tal.

Nas configurações das JSPs, adicione a linha:

<is-xml>true</is-xml>

Deve resolver. O erro não é mostrado, mas a servlet que criaria um JSP não XML não é criada, então a resposta volta vazia para o cliente.

Elucidativo?

Btw, se eu não tivesse me prestado a responder a sua questão, nem sequer saberia que o texto foi digitado em vermelho grande. Se a idéia de um fórum da disciplina é colaborar com as dúvidas dos colegas, esse tipo de reação impele ao exato contrário.

Espero ter ajudado.