wat’s up galera ?
Enfim, to com uma duvida sobre o mvc.
Vi um post com várias informações mas nenhuma tirou minha duvida.
Estou desenvolvendo uma aplicação com jsf com hibernate.
Estava seguindo uma video aula em que o autor não utilizava DAO.
Ai vem a pergunta, isso foge ao padrão MVC ?
Para uma inserção simples no bd ta assim (resumidamente):
1 - o jsp que faz a tela para o usuario.
2 - o bean que faz toda a regra de negócio
3 - a classe entidade que mapeia(? - não sei se eh assim que fala) com o hibernate,
4- e o config.xml
Isso é mvc, sem DAO ?
Desculpe a ignorancia, mas não sei muito sobre java ainda
Grato.
Você pode implementar o padrão MVC sem DAO, e DAO, sem MVC.
Pois é cara, eu só acho que vc vai bagunçar um pouco as camadas aí.
Veja que seu bean que recebe a info vai estar fazendo muitas coisas… Ele está perdendo um pouco de coesão.
Eu vejo mvc do seguinte modo:
View - Seria quem trata a entrada/saida das informações.
Controler - Responsavel pelo direcionamento das requisições e tomadas de decisões
Model - Modelo de classes.
No caso, fazendo um bean que irá receber o request, controlar a ação e persistir, vc estaria mesclando controler + view.
O controler não tem que saber de onde vem a informação. Ele teria apenas que tratar o valor necessário. Bem, vamos para os códigos.
Primeiro Modelo.
public class Produto{
String nome;
int valor;
}
Depois a view:
Na jsp vc irá cadastrar um produto. Na classe java que irá receber seu valor ficaria:
String nomeProduto = request.getParameter("nome");
String valorProduto = request.getParameter("valor");
Até aí, note que só fiz ação de tratamento de informações com relação a view. Agora sim, nosso controler entraria em ação:
ControlerProduto.cadastrarProduto(nome,acao);
Fazendo desse modo, a View está tendo acesso apenas ao controler e não tendo conhecimento do banco de dados. E tem outra, se depois vc quizer mudar algo na view, seu controler não sofreria alteração pois o método está protegido. Vc poderia mudar a view, ou até mesmo de Web para Desktop que o método de cadastrar produto ficaria intacto.
Então amigo é o seguinte, essa dúvida é normal quando esta começando, eu mesmo tive muito esses tipos de dúvidas.
Bom primeiro quero esclarecer uma coisa, MVC não é camada MVC é um padrão de desenvolvimento
Dividir o software em camadas não tem nada a ver com MVC, no caso de vc trabalhar com Swing o próprio Swing é um MVC, no caso de usar JSF ele proprio ja é um MVC.
Quando voce usa Struts ai sim temque implementar o MVC na mão.
Para mais informações aconselho que vc leia este link
http://java.sun.com/blueprints/patterns/MVC-detailed.html
No caso do DAO é usado para separar a camada de persistencia, que ja é outra coisa.
Até mais, espero ter ajudado