Pessoal
Estou desenvolvendo uma aplicacao utilizando o struts, e apos ler o artigo tirando o maximo do struts, cheguei a seguinte implementacao.
Criei uma BaseAction que sera padrao para as acoes de insercao, exclusao, consulta no meu formulario. Segue o codigo
public class BaseAction extends LookupDispatchAction{
private final static String SUCCESS = “success”;
protected Map getKeyMethodMap() {
Map map = new HashMap();
map.put("gravar","grava");
return map;
}
public ActionForward grava(ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 1
DynaActionForm f = (DynaActionForm) form;
PrincipalActionMapping pmapping = (PrincipalActionMapping) mapping;
// 2
ActionErrors errors = f.validate(mapping,request);
if (errors.isEmpty()) {
// 3
Object voGenerico = Class.forName(pmapping.getValueObject()).newInstance();
// 4
BeanUtils.copyProperties(voGenerico,f);
// 5. Pega interface Façade registrada em escopo de aplicação
IFacade plc = (IFacade) request.getSession().getServletContext().
getAttribute(IConstantes.INTERFACE_PERSISTENCIA);
// 6. Grava
plc.grava(voGenerico);
} else
request.setAttribute(Globals.ERROR_KEY,errors);
return mapping.findForward(SUCCESS);
}
Bem, pelo que entendi lendo o artigo, essa action funcionará genericamente para todos os meus cadastros, onde os ValueObjects sao definidos no meu struts-config xml, até ai tudo bem.
Estou encontrando problemas na implementacao da interface Facade.
Como eu faco para implementar essa interface, lembrando que esta action deve ser generica, ou seja, funcionar para todos os meus cadastros.
Algum de voces ja implementaram algo parecido? Como poderia fazer essa implementacao. Exemplos seriam muito bem vindos.
Obrigado