Pessoal, estou iniciando em WebWork e fiquei com uma dúvida, gostaria de fazer um cadastro no banco de dados, eu tenho um JSP que envia os dados (um form), estes dados são capturados pelo WebWork
aí vem a dúvida, eu já tenho uma classe Cliente que implementa os métodos insert, update, delete, então na realidade o que eu precisaria é passar estes parâmetros para esta classe, porém todos os exemplos que eu vi possuem uma classe com um método execute() que traz as regras de negócio, como eu faria? Preciso criar uma classe que efetue as validações e e insira no banco de dados chamando o método da classe que já está pronta?
Para cada ação devo criar uma classe com o método execute()???
Antes que me perguntem infelizmente o tempo do projeto não permite que eu estude hibernate, então decidi neste momento aprender webwork, em um segundo momento (ou projeto) vou estudar o hibernate.
Por favor me dêem dicas…
O WebWork trabalha no modelo de actions usando o pattern Command implementando a interface Action, ou seja ele requer que o metodo da tua action seja com a seguinte assinatura.
public String execute();
Existe a possibilidade de usar outro nome de metodo, a assinatura dele continua a mesma, mas para isso tu precisa indicar no xwork.xml
No teu caso o que tu pode fazer é construir uma action nesse modelo, configurar ela no xwork.xml e dentro dela fazer a parte de insercao.
Eu particularmente nao gosto de colocar regra de negocio nas actions, normalmente eu delego isso pro meu dominio, mas se for coisa pouca, nada impede de fazer direto nas actions mesmo.
Por que seguindo a idéia inicial a Action iria “direcionar” os campos para teste.cliente method=“insert”, aí eu precisaria trabalhar as regras no médodo insert??? cada método deveria retornar ERROR ou SUCCESS?
Isto é bom??
Eu nao sei como é tua classe Cliente, mas supondo que ela tenha atributos referente ao cliente e que tenha getters e setters para eles.
Tua action pode ficar mais ou menos assim:
[code]public class ClienteAction extends ActionSupport {
private Cliente cliente;
public ClienteAction() {
}
public String insert() {
if (cliente != null) {
cliente.insert();
}
return SUCCESS;
}
//Metodos get e set para cliente.
}
[/code]
Para o WW popular automaticamente o teu bean (nesse caso cliente) dentro da action é só colocar o name dos teus inputs assim:
<input name="cliente.nome"/>
Nesse caso o WW procura na action do form por um metodo getCliente e dentro do bean Cliente um metodo setNome, achando isso ele seta o valor que tava no teu form automatico.
É mais ou menos isso. Se tu nao entende bem de WW, é interessante da uma olhada em algum tutorial.