Ajuda para contruir uma action para setar valores no form

1 resposta
diogoprosoft

Galera preciso de uma ajudinha para contruir minha action, o que eu preciso e que ao digitar o id no formulario eu receba os dados correspondentes

eu tenho meu DAO

public Object listar(Class clazz, String pk) throws Exception  
     {  
         sessao = HibernateFactory.getSession();  
         transacao = sessao.beginTransaction();  
         Conta objt = (Conta) sessao.load(clazz, new Integer(Integer.parseInt(pk)) );  
         transacao.commit();  
         sessao.flush();  
         sessao.close();  
         return objt;  
     }

Minha Action

public ActionForward buscar(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
           
        
        return mapping.findForward(SUCCESS);        
                
    }

Meu JSP

<html:form action="conta" focus="idconta">            
            Id:<html:text property="idconta"/>
            Data_Cadastro<html:text property="datacadastro"/>
            Nome:<html:text property="nome"/>
            Obs:<html:text property="obs" />
            <html:submit property="method" ><bean:message key="button.salvar" /></html:submit>
            <html:submit property="method" ><bean:message key="button.deletar" /></html:submit>
            <html:submit property="method" ><bean:message key="button.buscar" /></html:submit>
        </html:form>

Não achei nada na net, porem os que eu achei e para listar, mais eu preciso setar no mesmo form

Me ajudem por favor!!!

1 Resposta

psandrelli

No jsp, no campo do id, coloque um onchange chamando um método na sua action, que faz a consulta e popule os campos.
Chame na action um método que carrega o form, passando o id.

public ActionForward loadForm...

Dentro desse mátodo, você seta os campos do seu form.

FormSeu frm = (FormSeu) form;
frm.setNome(String);
frm.setObs(String);

A lógica é mais ou menos essa.

Criado 9 de junho de 2008
Ultima resposta 9 de jun. de 2008
Respostas 1
Participantes 2