Estava discutindo hoje no trabalho sobre a separação entre as camadas de controle e apresentação no MVC. Pela proposta da arquitetura, eu poderia alterar completamente a camada de apresentação sem que isso fosse impactar na minha camada de controle afinal, tudo que ela veria seriam requests e responses. Na minha idéia, eu poderia criar uma camada de apresentação em PHP, Flex ou qualquer outra linguagem/framework enquando usaria meu framework de preferencia na camada de controle. Ai surgiram as minhas dúvidas…
Hoje umas das referências que temos em frameworks MVC são o Struts e o JSF. Mas nenhum dos dois permite que eu desacople totalmente as minhas camadas. O Struts ainda é mais flexível no que se trata da resposta a camada de apresentação pois faz o redirecionamento e posso passar os parâmetros pelo request para a página. Mas o JSF amarra completamente as duas coisas! Se eu não declaro um f:view no meu JSP (só posso usar JSP), o Servlet não funciona! Isso não está errado? Eu sou obrigado a usar os componentes X e Y na apresentação só porque adotei um framework na camada de controle?
Eu não cheguei a estudar mais a fundo… Mas como outros frameworks como o VRaptor ou o Menta se comportam nessa situação? Posso fazer a passagem de informações sem problemas?