Problemas com JSF

4 respostas
P

Pessoal,

Estou utilizando Tiles + JSF e me apareceu um problemão que não consigo resolver de jeito nenhum.

O código abaixo é executando normalmente, ou seja, é importado para a página atual tudo que está na página que HEADER referência, porém, quando vai rederizar os componente, é renderizado em local errado.

<f:subview id="header">
  <tiles:insert attribute="header" flush="false" />
</f:subview>

Exemplo:

<p>&lt;h:graphicImage value="logo.gif" /&gt;</p>

O resultado disso deveria ser:

<p><img src="logo.gif" /></p>

Mas esta resultando algo assim:

<img src="logo.gif" />
<p></p>

Isso mesmo, primeiro ele renderiza o componente e logo abaixo fica a tag html vazia. Zuando todo o layout.

Alguém já passou por isso, sabe como posso resolver?

[]s

4 Respostas

urubatan
prog:
Pessoal,

Estou utilizando Tiles + JSF e me apareceu um problemão que não consigo resolver de jeito nenhum.

O código abaixo é executando normalmente, ou seja, é importado para a página atual tudo que está na página que HEADER referência, porém, quando vai rederizar os componente, é renderizado em local errado.

&lt;f:subview id="header"&gt;
  &lt;tiles:insert attribute="header" flush="false" /&gt;
&lt;/f:subview&gt;

Exemplo:

<p>&lt;h:graphicImage value="logo.gif" /&gt;</p>

O resultado disso deveria ser:

<p><img src="logo.gif" /></p>

Mas esta resultando algo assim:

<img src="logo.gif" />
<p></p>

Isso mesmo, primeiro ele renderiza o componente e logo abaixo fica a tag html vazia. Zuando todo o layout.

Alguém já passou por isso, sabe como posso resolver?

[]s


Isto acontece por causa do cache do JSF, para subviews assim só funciona direito se só forem utilizadas tags JSF.
da mesma maneira que tu não vai conseguir colocar HTML dentro de uma coluna de um datatable

uma possivel forma de contornar seria colocar um f:verbatim

P

urubatan,

Fiz o que vc disse e funcionou, a imagem apareceu dentro da tag html.

Mas, apesar disso, não fiquei “feliz”, pois praticamente todas as minhas páginas serão subviews ter que controlar as saídas html com f:verbatim não seria uma tarefa legal.

Porém não sei se tenho alternativa, não posso utilizar f:view pq duas no mesmo documento gera erro e ao mesmo tempo quero separar o layout: header, body, para ter um melhor aproveitamento.

Teria alguma sugestão para utilizar JSF e ter um código mais limpo?

urubatan

facelets é uma solução pra isto, mas eu não curti muito, só vai ficar legal nas proximas versões quando eles lerem o proprio TLD para adicionar tags na engine.
fora isto não conheço nenhuma solução para composição de páginas como você quer não.

talvez uma opção seja desenvolver uma tag para isto.

P

Dei uma olhada no forum da Sun e não vi nada de diferente. Bom tentar ao menos deixar menos “sujo”, já que não tenho alternativa.

Obrigado pela ajuda.

Criado 15 de abril de 2006
Ultima resposta 16 de abr. de 2006
Respostas 4
Participantes 2