Ah o erro do alterar eu arrumei agora eu naum estou conseguindo preencher o form vou postar meu Action e meu jsp…
O action é esse:
/* Project : DataAccess_EasyProject
* Created on May 3, 2005
* Author: Maria de Fatima Silveira Bianchim
*
* Purpose: Declaration of class RequisitoAction.java
*
* Copyright 2005, INATEL Centro de Competência em Telecomunicações
* All rights are reserved. Reproduction in whole or part is
* prohibited without the written consent of the copyright owner.
*/
package com.icc.easyproject.web.actions;
import java.sql.SQLException;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 org.tools4j.dbfw.bean.InconsistenceException;
import com.icc.easyproject.business.EasyProjectDelegate;
import com.icc.easyproject.valueobjects.RequisitoValue;
import com.icc.easyproject.web.forms.RequisitoForm;
import com.icc.library.GenericException;
/**
* @author fatima
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class RequisitoAction extends Action
{
private RequisitoValue m_requisitoValue = null;
private EasyProjectDelegate m_easyprojectDelegate = null;
private ActionErrors m_actionErrors = null;
private String m_sSystemaId = null;
/**
* Constructor
*/
public RequisitoAction() {
m_actionErrors = new ActionErrors();
m_easyprojectDelegate = new EasyProjectDelegate();
}
/**
* Método responsável por receber o evento de action do formulário
* RequisitoForm e invocar o método relacionado a este evento.
* @param ActionMapping Contém informações para mapear a requisição do usuário.
* @param ActionForm Contém todos os campos do formulário da página.
* @param HttpServletRequest Mantém os dados do request do usuário.
* @param HttpServletResponse Mantém os dados para efetuar o response ao usuário.
* @return ActionForward Encaminha para uma determinada página.
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception
{
RequisitoForm requisitoForm = (RequisitoForm)form;
m_actionErrors.clear();
String action = request.getParameter("Submit");
if((action != null) && (!action.equals("")))
{
if(action.equals("Novo"))
{
//encaminha para requisitos.jsp
requisitoForm.reset();
m_sSystemaId = "1";
requisitoForm.setSistema_Id(new Integer(m_sSystemaId));//na verdade preciso pegar o SystemId de algum lugar...
return mapping.findForward("requisitos");
}
else if(action.equals("Alterar"))//naum tah funcionando...
{
//altera de fato as informações q o banco contem
return updateRequisito(form, mapping, request);
}
else if (action.equals("Remove"))
{
String sId = (String)request.getParameter("id");
return removeRequisito((RequisitoForm)form, Integer.parseInt(sId), mapping, request);
}
else if (action.equals("Altera"))//ele naum tah preenchendo o form
{
//buscar informações no banco sobre um determinado requisito e preencher o form
String sId = (String)request.getParameter("id");
return retriveRequisito (Integer.parseInt(sId), mapping, request, (RequisitoForm)form);
}
else if(action.equals("Incluir"))
{
//incluir um determinado requisito no banco
return insertRequisito(form, mapping, request);
}
else if(action.equals("Cancelar"))
{
//retornar a pg requisitosList.jsp
return mapping.findForward("requisitosList");
}
}
return retriveRequisitoBySystem(new Integer("1"), mapping, request, (RequisitoForm)form);
//como posso pegar o id do sistema??
}
/**
* @param id variavel que contem o Id do requisito selecionado
* @param ActionMapping Contém informações para mapear a requisição do usuário.
* @param ActionForm Contém todos os campos do formulário da página.
* @param HttpServletRequest Mantém os dados do request do usuário.
* @return mapping.findForward("requisitos");
* @throws InconsistenceException
* @throws SQLException
* @throws NumberFormatException
*/
private ActionForward retriveRequisito(int iId, ActionMapping mapping, HttpServletRequest request, RequisitoForm form) throws NumberFormatException, SQLException, InconsistenceException
{
try
{
m_requisitoValue = (RequisitoValue)m_easyprojectDelegate.retrieveById(new Integer(iId), RequisitoValue.class);
m_sSystemaId = m_requisitoValue.getSistemaId().toString();
if(m_requisitoValue != null)
{
form = setRequisitoForm(m_requisitoValue);
}
}
catch (GenericException e)
{
m_actionErrors.add(ActionErrors.GLOBAL_ERROR, new ActionError(e.getBundle()));
}
if(!m_actionErrors.isEmpty())
{
saveErrors(request, m_actionErrors);
return retriveRequisitoBySystem(new Integer(m_sSystemaId), mapping, request, (RequisitoForm)form);
}
return mapping.findForward("requisitos");
}
/**
* Método Responsável por setar um RequisitoForm apartir de um RequisitoValue
*/
private RequisitoForm setRequisitoForm (RequisitoValue value)
{
RequisitoForm form = new RequisitoForm();
form.setDescricao(value.getDescricao());
form.setDescricaoRisco(value.getDescricaoRisco());
form.setId(value.getId());
form.setNome(value.getNome());
form.setPrioridade(value.getPrioridade());
form.setRisco(value.getRisco());
form.setSistema_Id(value.getSistemaId());
form.setStatus(value.getStatus());
form.setTipo(value.getTipo());
return form;
}
/**
* Método responsável por criar uma nova instância RequisitoValue com os
* dados contidos no formulário.
* @param form Formulário que contém os dados preenchidos pelo usuário.
*/
private void setRequisitoValue(RequisitoForm form)
{
m_requisitoValue = new RequisitoValue();
m_requisitoValue.setId(form.getId());
m_requisitoValue.setNome(form.getNome());
m_requisitoValue.setDescricao(form.getDescricao());
m_requisitoValue.setDescricaoRisco(form.getDescricaoRisco());
m_requisitoValue.setSistemaId(form.getSistema_Id());
m_requisitoValue.setPrioridade(form.getPrioridade());
m_requisitoValue.setRisco(form.getRisco());
m_requisitoValue.setStatus(form.getStatus());
m_requisitoValue.setTipo(form.getTipo());
}
/**
* @param System_Id
* @return mapping.findForward("requisitosList");
*/
private ActionForward retriveRequisitoBySystem(Integer System_Id, ActionMapping mapping, HttpServletRequest request, RequisitoForm requisitoForm) throws SQLException, InconsistenceException
{
requisitoForm.setRequisitos((Collection)m_easyprojectDelegate.retriveRequisitoBySystemId(System_Id));
if(!m_actionErrors.isEmpty())
{
saveErrors(request, m_actionErrors);
return mapping.findForward("requisitosList");
}
return mapping.findForward("requisitosList");
}
/**
* Método responsável por inserir um novo registro na tabela REQUISITO.
* @param form Contém todos os campos do formulário da página. Os dados que serão inseridos na tabela REQUISITO.
* @param mapping Contém informações para mapear a requisição do usuário.
* @param request Mantém os dados do request do usuário.
* @return ActionForward Encaminha para a página que contém todos os registros da tabela REQUISITO.
* @throws InconsistenceException
* @throws SQLException
*/
private ActionForward insertRequisito(ActionForm form, ActionMapping mapping, HttpServletRequest request) throws SQLException, InconsistenceException
{
//Integer iSystemId = form.getSistemaId();
RequisitoForm requisitoForm = (RequisitoForm)form;
requisitoForm.setSistema_Id(new Integer(1));
setRequisitoValue(requisitoForm);
//Verifica se há algum erro com os dados do formulário.
m_actionErrors = requisitoForm.validate(mapping, request);
if(m_actionErrors.isEmpty())
{
try
{
m_easyprojectDelegate.addRegister(m_requisitoValue);
}
catch (GenericException e)
{
m_actionErrors.add(ActionErrors.GLOBAL_ERROR, new ActionError(e.getBundle()));
}
}
//Remove o formulário da sessão
if(!m_actionErrors.isEmpty())
{
saveErrors(request, m_actionErrors);
return (mapping.findForward("erro"));
}
else
{
if (mapping.getAttribute() != null)
{
if ("request".equals(mapping.getScope()))
{
request.removeAttribute(mapping.getAttribute());
requisitoForm.reset();
}
else
{
request.getSession().removeAttribute(mapping.getAttribute());
requisitoForm.reset();
}
}
}
return retriveRequisitoBySystem(m_requisitoValue.getSistemaId(), mapping, request, (RequisitoForm)form);
}
/**
* Método responsável por atualizar um determinado registro na tabela REQUISITO através do campo ID
* @param form Contém os dados que serão atualizado na tabela sistemas
* @param mapping Contém informações para mapear a requisição do usuário.
* @param request Mantém os dados do request do usuário.
* @return ActionForward Encaminha para a página que contém o formulário da tabela requisitos
*/
private ActionForward updateRequisito(ActionForm form, ActionMapping mapping, HttpServletRequest request)throws Exception
{
RequisitoForm requisitoForm = (RequisitoForm)form;
requisitoForm.setSistema_Id(new Integer(m_sSystemaId));
m_actionErrors = form.validate(mapping, request);
if(m_actionErrors.isEmpty())
{
try
{
setRequisitoValue(requisitoForm);
m_easyprojectDelegate.updateRegister(m_requisitoValue);
m_sSystemaId = m_requisitoValue.getSistemaId().toString();
}
catch (GenericException e)
{
m_actionErrors.add(ActionErrors.GLOBAL_ERROR, new ActionError(e.getBundle()));
}
}
if(!m_actionErrors.isEmpty())
{
saveErrors(request, m_actionErrors);
return (mapping.findForward("erro"));
}
else
{
requisitoForm.reset();
return retriveRequisitoBySystem(new Integer(m_sSystemaId), mapping, request, requisitoForm);
}
}
/**
* Método responsável por deletar um determinado registro na tabela REQUISITO através do campo ID
* @param form do Requisito para manter o id de sistema
* @param id do requisito que se quer remover
* @param mapping Contém informações para mapear a requisição do usuário.
* @param request Mantém os dados do request do usuário.
* @return manda para o método retriveRequisitoBySystem que irá retornar a requisitosLis.jsp
* @throws SQLException
* @throws InconsistenceException
*/
private ActionForward removeRequisito(RequisitoForm form, int id, ActionMapping mapping, HttpServletRequest request) throws SQLException, InconsistenceException
{
//Integer SystemId = form.getSistema_Id();
Integer SystemId = new Integer(1);
try
{
m_easyprojectDelegate.removeRegister(new Integer(id),RequisitoValue.class);
}
catch (GenericException e)
{
m_actionErrors.add(ActionErrors.GLOBAL_ERROR, new ActionError(e.getBundle()));
}
if(!m_actionErrors.isEmpty())
{
saveErrors(request, m_actionErrors);
}
// retorna para a pagina que apresenta todos os registros da tabela Requisito
form.reset();
return retriveRequisitoBySystem(SystemId, mapping, request, (RequisitoForm)form);
}
}
ah o forum naum tah deixando eu postar o formulario tá falando que eu naum posso usar essas tags… hum mas é um formulário normal com 3 html:text, com 4 html:select e seus options, um botão cancela, um limpa, e 2 submit com logica de novo e alterar…