marcosalex:
Nunca mexi, meu campo hidden da ViewState é uma string gigante.
Procurei nos meus arquivos de configuração e essa propriedade estava como client. Ou alguém da equipe setou ou foi o próprio netbeans.
Beleza, deu pra esclarecer as dúvidas, vou pesquisar mais sobre isso e as implicações. Talvez os componentes do richfaces que tiveram de implementar o “trabalho sujo” ou que eu nao tenha me deparado com uma situação que atrapalhe. Ou ainda que eu tenha deixado de programar de uma maneira mais simples alguma situação, sei la!
Valeu a todos pelas explicações.
Essa String gigante é o estado da tela serializado no cliente, gastando banda a torto e a direita, sobrecarregando a página no cliente, e metralhando o servidor com processamento ao serializar/desserializar essa String a cada request.
A outra opção seria jogar no server, onde guardaria a mesma informação na HttpSession, explodindo a memória do Server e trazendo problemas de escalabilidade e disponibilidade.
Não que o JSF seja ruim, mas é preciso saber os tradeoffs. O JSF é um framework Stateful, não há opção. Para guardar esse estado, alguém vai sofrer (client ou server). Mas muitas vezes Stateful não é tão importante para você ou você tem problemas maiores de performance ou escalabilidade, e precisa de uma solução mais Web, mais natural ao HTTP, Stateless. É aí que entram os frameworks Action Based.