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:
<%@ 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>
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"));
}
}