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
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.
> 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
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?
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?
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:
Boa sorte.
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.
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)
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
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:
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.
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.
Ok, desculpe pela agressividade
Obrigado pelas dicas
Obrigado pelas dicas