É viável utilizar Facelet templating para todo um site institucional, no lugar de xhtml?

Bom dia 4all

A situação é a seguinte:
Temos nosso site institucional em xhtml (utilizando o sistema de templates do Dreamweaver), hospedado em um servidor Apache 2.2;
Estamos desenvolvendo nossas aplicações em JSF 2 com Facelets em um servidor Tomcat 6.

Devido às restrições de licença do Dreamweaver e estarmos mudando os sistemas operacionais da nossa TI para Linux, vamos parar de utilizar o Dreamweaver.
Pretendemos manter o template do site, porém o mecanismo de templating do Dreamweaver é muito “engessado”.
Diante dessa situação, estávamos pensando em utilizar Facelet Templating para todo o site (parte institucional e sistemas web).

Daí surgem as dúvidas:
Há algum problema (padronização?) em se utilizar Facelets para renderizar todo o site (parte institucional e sistemas web)?
Há perda de desempenho considerável ou sobrecarga no Tomcat ao se utilizar Facelets ao invés de utilizar xhtml + Apache?

Nossa média diária de acessos é de 1000.

Um abraço a todos.

Olá.

Talvez eu não seja a melhor pessoa para te responder, mas posso te dar um conselho: não use JSF no seu site. Eu uso JSF para aplicações web, mas para sites só uso VRaptor. Aconselho que utilize VRaptor no seu site, ou outro framework action-based.

Com todo o respeito ao colega acima, mas discordo, não vejo problema na utilização do JSF nesse cenário.

Sobre o que perguntou, você quer usar o mesmo template do Facelets para o seu site e para os sistemas internos, é isso? Se for isso, que tipo de “problema” voce está imaginando? A principio não vejo nenhum impeditivo.

Sobre a segunda questão, penso que a resposta é não. Tenho feito alguns testes nesse sentido e não estou sentindo problemas de performance. Seu template é html estático, correto?

Obrigado por responder, esdras_63.

Mas há alguma experiência negativa sua em utilizar JSF no site?

Estou dando uma olhada no VRaptor…

Abraço.

Correto. Posso estar entendido o cenário diferente. Mas creio que nas páginas que você já tem, você está utilizando tags normais. Caso use o JSF, o certo seria “traduzir” para tags jsf, senão você terá problemas.

Boa tarde, alias.

Ainda não decidimos se utilizaremos o mesmo template do Facelets para o site e para os sistemas, mas é provável que sim, pelo menos a parte do head do site.
Lembrando que o site é, basicamente, textos estáticos, imagens de alguns eventos e documentos (leis) para download… daí, disponibilizamos alguns sistemas para acesso externo, como geradores de boletos, etc.

Então… não vejo “problema”… é mais uma dúvida mesmo, se há possíveis falhas de segurança no JSF (como no Joomla, por exemplo).

O que tá “pegando” mais é a questão do desempenho… como queremos abandonar o Dreamweaver, não podemos manter o modelo de template “engessado” dele…
Como o do Facelets é mais simples, não nos deixa refém de um programa específico, é mais fácil de dar manutenção, mesmo utilizando um editor de texto simples,
além de não ter que replicar o template para cada página que o utiliza, já que o Web Container faz isso em tempo de execução e apenas carrega as partes específicas.

Sim, o template utiliza xhtml estático.

Então você acha que não haverá perda considerável de performance, para +/- 1000 acessos diários, fazendo essa migração para Facelet Templating?

Abraço.

Então, esdras_63… teríamos esse trabalho extra para fazer a “tradução” para as tags JSF… como não são tantas páginas (acredito que menos de 50), em 1 mês isso estaria pronto.

O faceletes pode cuidar desse detalhe de “tradução”. Bom, pelo menos de alguma parte, hehe. Suponho que suas páginas sejam html puro, puro, correto?Mesmo as paginas de entrada de dados do usuário? Você poderia fazer algo desse tipo

Suponha essa tag aqui, bom e velho html

<input type="text" value="" />

Você poderia alterar para

<input type="text" value="#{bean.atributo}" jsfc="h:inputText" />

O jsfc serve para informar ao Facelets que uma determina tag html deve ser convertida para uma tag do JSF.

Nesse exemplo aí seria o mesmo que você escrever

<h:inputText value="#{bean.atributo}" />

Como o código das suas páginas já está pronto, talvez o jsfc possa te ajudar. Todas as tags padrão do jsf correspondem a um tag padrão do html; sugiro uma olhada na documentação do Facelets que mostra direitinho as correspondencias entre as tags padrao (h: e f: ) e as tags html.

Sobre a sua pergunta, tenho feito alguns testes de performance nesse sentido mesmo que você está colocando (± mil acessos na pagina) e a renderização vem se saido bem, na verdade o Facelets é mesmo rápido pra renderizar (é mais rápido que o JSP). Claro que os seus testes ai é o que vão te dar a resposta definitiva mas vale uma prova de conceito, com certeza.

Não entendi bem o que quis dizer com “falhas de segurança”. E o Joomla tem esse problema? Pô tô fazendo um sitezinho com ele e nem sabia disso :shock: :lol:

Então, alias, quanto à tag “jsfc” tá tranquilo, já utilizamos facelets nos sistemas… apenas teríamos que colocar essa tag nas de xhtml…

Como te falei, a dúvida maior é sobre perda de performance, sobrecarga no sistema, consumo de memória muito grande pelo Tomcat, falha de segurança, etc…

Quanto ao Joomla… de vez em quando aparece uma falha e vários sites são invadidos por não estarem com seu Joomla atualizado…
mas acredito que, se você ficar “ligado” nessas atualizações, não terá tantos problemas…

Abraço

sobre o consumo de memoria, cara, a observação do colega esdras_63 sobre o JSF é muito relevante. O JSF é statefull, entao o estado da página precisa ser armazenado de alguma forma, seja no server (gastando mais memoria) ou no client (aumentando o tamanho do html final).