Tela de editar cadastro - Struts

0 respostas
calel

Pensei que pro Struts preencher minha página com os dados registrados no banco bastaria preencher o objeto form da classe Action do struts...
Mas não funcionou, os dados estão disponiveis no bean:write mas não dentro dos objetos do html:form
O unico jeito que encontrei foi criar um atributo pelo request.setAtribute, mas sei que deve ter um modo automatico pra isso, só não achei ainda... :cry:

Minha jsp:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@page import="br.com.practical.util.Constantes"%>

<html>
<head>
<title>Titulo</title>
<html:base/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<html:errors/>
<logic:present name="<%=Constantes.SUCESSO %>">
	<bean:message key="sucesso.grupo.cadastro"/>
</logic:present>
<html:form action="/cadastrarGrupo" focus="ds_grupo" scope="session">
<logic:greaterThan value="-1" name="idgrupo">
	<html:hidden property="idgrupo" value="<%= String.valueOf(request.getAttribute("idgrupo")) %>" />
</logic:greaterThan>
<table>
<tr><th>Descrição Produto</th><td><html:text property="ds_grupo" /></td></tr>
<tr><th>Grupo Pai</th>
<td><html:select property="idgrupo_pai" >
<option value="-1">Nenhum</option>
 <logic:iterate type="br.com.practical.apresentacao.GrupoForm" 
 				name="listaGrupoPai" scope="session" id="grupo">
  <html:option value="<%=String.valueOf(grupo.getIdgrupo()) %>"><%=grupo.getDs_grupo()%></html:option>
 </logic:iterate>   
</html:select> 
</td></tr>
<tr><td><html:submit value="Salvar" /></td><td><html:reset value="Limpar Campos"/></td></tr>
</table>
</html:form>
<html:link forward="welcome">Welcome!</html:link>
<script>
  document.getElementById("combo").select
</script>
</body>
</html>
A action que chama a jsp acima:
package br.com.practical.apresentacao;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.practical.dao.GrupoDao;

public class GrupoPaiListarAction extends Action {
	
	@Override
	public ActionForward perform(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response)
        throws IOException, ServletException{
			try{
				GrupoDao gd = new GrupoDao();
				HttpSession session = request.getSession();
				
				try{
					int num = Integer.valueOf(request.getParameter("idgrupo"));
					request.setAttribute("idgrupo", num);
					GrupoForm gf = (GrupoForm) form;
					gf = gd.pegaGrupo(num);
					
				}catch(Exception e){
					request.setAttribute("idgrupo", -1);
				}

				session.setAttribute("listaGrupoPai", gd.listarGrupoPai());
			}catch(Exception e){
				ActionErrors errors = new ActionErrors();
				errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.grupo.listarPai"));
				saveErrors(request, errors);
				return (mapping.findForward("welcome"));
			}
        	
        	return (mapping.findForward("cadastroGrupo"));
	}
}
Criado 10 de outubro de 2009
Respostas 0
Participantes 1