Seguinte pessoal, comprei um livro sobre Arquitetura de Sistema e estou estudando sobre MVC.
Pelo o que diz no livro, o MVC é composto por Model, View e Controller e basicamente o funcionamento é View -> Controller -> Model , certo?
Então, no livro possui um exemplo em que a pagina é feita em JSP, que sao as Views, possui também o Controller em Servlet, os VO (value Object) que são os beans das tabelas e tambem os Application Service, que seria a camada de negocio da aplicação.
Eu entendi a logica que o autor utilizou, porém, não consigo encaixar isso no JSF. Estou fazendo vários testes no PrimeFaces, mas não consigo criar uma camada Controller. Pelo que li e vi alguns comentários aqui no forum, para o framework jsf e alguns outros, o proprio framework é a camada Controller. Isso é verdade?
Outra coisa que tenho duvida é que para acessar um metodo ou atributo de uma classe, eu tenho que definir ela como ManagedBean? É somente esse jeito que consigo acessar #{mb.metodo()} ?
Li no fórum que não existe regra em relação ao ManagedBean ter ou não as regras de negocio dentro dele. O que voces me dizem sobre isso?
Eu pensei em fazer assim, criar tipo um ManagedBean que terá as regras de negocios, inclusive o objeto em questão que sera utilizado e através desse objeto, jogo para os campos do jsf... Tipo assim:
@ManagedBean (name="funcService")
@ViewScoped
Class FuncionarioService {
private Funcionario func;
//getters e setters
//regra de negocio
public void salvarFuncionario(){}
public void verificarAlgo(){}
}
e na view, nos campos de input utilizar #{funcService.func.id} e quando tiver que chamar um metodo, o chamo direto #{funcService.salvarFuncionario()}..
O meu raciocínio está certo?
Ainda falta muito do livro para ler, mas preciso entender se o que estou realmente colocando na minha cabeça é o correto.
