se eu extender minha classe a Action (struts), vou ter q colocar o metodo execute, certo? mas e se eu nao quiser usar o metodo execute e sim colocar varios metodos dentro da mesma action (exemplo action Cliente, tera os metodos inserir, excluir, etc…).
Tem alguma classe que eu extenda (diferente de action) que nao precise implementar o execute?
Já ouvi falar q tem, mas gostaria de saber qual é…
pq vc não implementa no execute a inteligência necessária para ele delegar a s tarefas para os métodos específicos?
Tipo, o execute define se a ação é inclusão, exlusão, alteração e etc…
Ou melhor ainda, vc pode criar uma subclasse da Action que implementa o execute que terá a inteligência necessária para delegar as tarefas, e então vc extende esta classe que exige a implementação dos métodos create, delete, update e find!
public abstract class MinhaSuperAction implements Action {
public String execute() {
// rotina para chamar os métodos abstratos delete, create, update e find
}
public abstract String create();
public abstract String update();
public abstract String delete();
public abstract String find();
}
jgbt wrote:
é um trabalho desnecessario. encheria de if’s a action.
como ja foi citado, DispathAction resolvem o problema facil.
Não encheria de ifs não, basta fazer com reflexão. Ele pode receber um parametro a mais, que seria o nome da ação, e chamaria esse metodo usando reflexao. Tipo: obj.getClass().getMethod(“metodo”,“Class[]”).invoke(obj,parametros.) O getMethod, recebe o nome do metodo e as classes que ele recebe como parametro, e o invoke recebe o objeto que contem o metodo e seus respectivos parametros.
[quote=alots_ssa]jgbt wrote:
é um trabalho desnecessario. encheria de if’s a action.
como ja foi citado, DispathAction resolvem o problema facil.
Não encheria de ifs não, basta fazer com reflexão. Ele pode receber um parametro a mais, que seria o nome da ação, e chamaria esse metodo usando reflexao. Tipo: obj.getClass().getMethod(“metodo”,“Class[]”).invoke(obj,parametros.) O getMethod, recebe o nome do metodo e as classes que ele recebe como parametro, e o invoke recebe o objeto que contem o metodo e seus respectivos parametros.
Valeu Marcelo,
Alberto
[/quote]
blz, mas continuaria reinventando a roda, o struts ja fornece meios de fazer isso.
mas é questão de opinião…
[quote=alots_ssa]Não encheria de ifs não, basta fazer com reflexão. Ele pode receber um parametro a mais, que seria o nome da ação, e chamaria esse metodo usando reflexao. Tipo: obj.getClass().getMethod(“metodo”,“Class[]”).invoke(obj,parametros.) O getMethod, recebe o nome do metodo e as classes que ele recebe como parametro, e o invoke recebe o objeto que contem o metodo e seus respectivos parametros.
[/quote]
Kkkkkkkkkkkkkkk!
Dá uma olhada nos fontes do DispatchAction e das suas subclasses, você vai ter um susto com a semelhança :lol: