Duvida sobre MVC

3 respostas
D

Galera, tenho a seguinte duvida no seguinte cenário:

Tenho um Objeto Usuario, na minha classe UserDAO, tenhos os metodos Insert, Update, Delete, FindById, ListAll, todos relacionados a dominio de negócio.

E tenho uma página onde tenho todas as funcionalidades do UserDAO implementadas, na mesma página eu tenho um formulário e uma tabela(ListAll), essa eu não saio da mesma página pra nada, tenho todas as informações nessa unica pagina.

No meu controler como ficaria a chamada dos metodos de UserDAO?

3 Respostas

T

Vc deve ter uma classe de negócio que será visível por seu JSP (por EL vc chama os métodos dessa sua classe de negócio) e essa sua Classe de negócio acessa seus DAO’s…

essa era a dúvida?

Nicolas_Fernandes

No modelo MVC, as classes de Model é que se comunicam com o DAO.

Funciona assim:


View
/
Controller
/
Model (Pojos, DAOs e Services)

Então, ao querer acessar o DAO, que é uma camada mais baixa, você deve começar pelo Controller.
O Controller irá acessar a camada Model através das classes de Service específicas.
As classes Service, por sua vez, irão se comunicar com os Pojos e DAOs que você quer.

(No Controller)

public class UserAction {
   
   // getInstance(), construtor privado e tudo o mais.

   public void Insert(User userObj) throws Exception {

      UserService.getInstance().Insert(userObj);
   }
}

(No Model - Service)

public class UserService {
   
   // getInstance(), construtor privado e tudo o mais.

   public void Insert(User userObj) throws Exception {

      UserDAO.getInstance().Insert(userObj);
   }
}

O DAO fica da maneira que você fez.

Seria isso o que você queria?

D

Seria mais ou menos isso, mais a questão é:

Como na minha pagina tem um formulário e uma tabela(List) com os dados, eu teria dois actions nessa página logo quando eu entrasse nela, por exemplo:

  • Quando um link chamar essa página, esse link dispara a action create, e teria que disparar também a action list também.

Um exemplo abaixo usando jsf, agora como poderia estar chamando duas actions(create, list) para a página já iniciar carregada com as informações que tem no banco.

<h:commandButton value="OK" action="#{userController.listar}"/>

Era isso…

Criado 1 de setembro de 2009
Ultima resposta 1 de set. de 2009
Respostas 3
Participantes 3