XHTML + Portlet

6 respostas
Psycopata

Gente, pela especificação de Portlet (JRS 286) não de deve usar as tags html:

<html>
<head>
<body>
etc..

Ok, mas como eu faço para criar uma página portlet em XTHML sem usar a tag htm?

Assim, para usar portlet, jsf, e companhia, é necessário declarar os namespaces, mas esses namespaces são declarados na tag html. Eu gostaria de saber se existe outra tag que eu poderia declarar esses namespaces e que seja permitida pela especificação 286 e que não seja gato (utilizando a div, por exemplo)!

Existe a tag <a4j:portlet>, nesse caso eu teria que usar o richfaces, coisa que eu não quero fazer agora.

Alguém tem alguma outra sugestão?

6 Respostas

Psycopata

Descobri. como talvez tenha pessoas com o mesmo problema, vou postar aqui a solução:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<f:view xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html">

</f:view>

Pronto, assim o portlet fica de acordo com as especificação JRS-286

Abdon

Estou com o mesmo problema mais ao invez de utilizar jsf estou usando jstree do jquery.

Vc simplemente colocou

<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

No inicio da sua pagina do portlet e funcionou normalmente?

Tentei fazer isso e aqui não rolou :frowning:

Qual portlet container vc esta utilizando?

Psycopata

Então, eu estou utilizando dois portal server:
WebSphere 7
e GateIn.

Nos dois casos funcionam.

O trecho de código:

<?xml version="1.0" encoding="UTF-8"?>     
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

É apenas a definição do XHTML.

Você tem certeza que é isso que está dando problema?

Na especificação JRS-286 diz que a página não deve conter as tags: HTML, HEAD, BODY, etc. Não lembro de todas de cabeça agora.
Porém a especificação que é XHTML, não tem nada dizendo que não é para aparecer.

Porém, estou lembrando de uma coisa, como o portal server monta a página, motivo pelo qual não se deve colocar as tags que eu citei. Então tente rodar esse essa definição de XML, deixando que o portal server monte ela para você.

Abdon

Ola tenho certeza sim, eu estou utilizando jquery jstree menu, que so roda com xhtml, se eu edito a pagina principal do template do portal e coloco a definição

<?xml version="1.0" encoding="UTF-8"?>       
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

em cima da tag html funciona normalmente, o problema é que eu não posso nem em sonho alterar a tela padrão do portal em produção.

Colocando esta definição no inicio da pagina do portlet que como vc sabe não deve ter o html e algumas outras tag para mim não esta funcionando.

Vou pesquisar mais sobre o assunto, se achar uma solução posto ela aqui, muito obrigado!

Psycopata

Mas posta mesmo. Nos fóruns brasileiros, o pessoal quando acha a solução costuma não postar, deixando apenas a dúvida. Daí quando a gente tem a mesma dúvida, não acha a resposta.

No seu caso específico, eu nunca usei o JQuery e nem o jstree menu. Eu postei o que eu achava baseado nas páginas XHTML que uso com o JSF.

Porém, eu vou pesquisar sobre isso e como isso funciona no portal. Se você achar a resposta, poste mesmo. Se eu encontrar alguma coisa diferente, eu também ou postar aqui.

Abdon

Eu abandonei o uso do tree do jquery e estou avaliando utilizar dojo, mas achei uns post no proprio forum dizendo que a suporte a ajax do tree do dojo é precario. Como estou apenas fazendo uma POC no momento, mais estou avaliando escrever o meu proprio tree já que no meu caso vou ter que fazer um tree paginado e vai ser dificil achar algo parecido com o que eu preciso.

Criado 2 de setembro de 2010
Ultima resposta 7 de out. de 2010
Respostas 6
Participantes 2