Muitas vezes os usuários pedem alguns layouts de conteúdos WCM bem complexos, e uma coisa é fato: O WCM tem algumas limitações na forma de exibir seus conteúdos. Uma das alternativas é usar a API do WCM para trazer seus conteúdos e apresentar da forma que quiser, já que assim estará trabalhando num JSP. Eis que vem um probleminha chato: Performance.
Apesar desse problema ter sido bem reduzido a partir da versão 6.1, para quem ainda está na 6.0 vai uma dica: Usar o Menu Component, se possível, para buscar os conteúdos que você precisa.
Quando usamos o Menu Component do WCM ao invés do searchContent(), nota-se um ganho imenso de performance, já que o Menu Component é gerenciado internamente para cachear os resultados e fazer o melhor método de acesso.
Para quem usa Portal 6.0:
A dica é escrever um XML como saída do Menu Component e os valores que você vai precisar exibir, já que não é possível pegar o conteúdo da iteração corrente no menu.
Ex:
Cabeçalho:[resultado]
Cada resultado: [conteudo][nome][placeholder...][url][placeholder...][/url]
Rodapé: [/resultado]
No WPF você converte o resultado do componente usando uma classe LJO e XmlUtil.parseXml(workspace.render(rc, menuComponent));
Para quem usa Portal 6.1:
Se precisar mesmo usar o WPF, faça como no exemplo acima, porém se puder resolver seu problema com um JSP incluído no resultado do menu, use o método renderingContext.getCurrentResultId();
;)
Apesar desse problema ter sido bem reduzido a partir da versão 6.1, para quem ainda está na 6.0 vai uma dica: Usar o Menu Component, se possível, para buscar os conteúdos que você precisa.
Quando usamos o Menu Component do WCM ao invés do searchContent(), nota-se um ganho imenso de performance, já que o Menu Component é gerenciado internamente para cachear os resultados e fazer o melhor método de acesso.
Para quem usa Portal 6.0:
A dica é escrever um XML como saída do Menu Component e os valores que você vai precisar exibir, já que não é possível pegar o conteúdo da iteração corrente no menu.
Ex:
Cabeçalho:
No WPF você converte o resultado do componente usando uma classe LJO e XmlUtil.parseXml(workspace.render(rc, menuComponent));
Para quem usa Portal 6.1:
Se precisar mesmo usar o WPF, faça como no exemplo acima, porém se puder resolver seu problema com um JSP incluído no resultado do menu, use o método renderingContext.getCurrentResultId();
;)
Um comentário:
dica legal. Vou repassar para os meus clientes
Postar um comentário