Desculpe amigo, ontem estava meio enrolado… mas corrigi o lance do parametro e agora passo o id do fornecedor e não mas o nome…
Tenho a classe SearchAction que está da seguinte forma, a parte da linha 39 a 47 foi a que implementei para esta parte da minha dúvida.
package br.com.sce.action;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.*;
import br.com.sce.fornecedor.*;
import br.com.sce.login.SearchBean;
public class SearchAction extends Action{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("*** SearchAction ***");
SearchBean sb = (SearchBean) form;
DAOFornecedor daoFornecedor = new DAOFornecedor();
BeanFornecedor beanFornecedor = new BeanFornecedor();
ActionMessages messages = new ActionMessages();
System.out.println("sb.getOpcao(): " + sb.getOpcao());
System.out.println("sb.getidFornecedor(): " +sb.getIdFornecedor());
String idFornecedor = request.getParameter("idFornecedor");
if (idFornecedor != null ) {
System.out.println("idFornecedor != null: " + idFornecedor );
daoFornecedor.selectFornecedor(idFornecedor);
return mapping.findForward("success");
}
if (sb.getNomeFornecedor() == null || sb.getNomeFornecedor().trim().equals("")) {
ActionMessage error = new ActionMessage("error.paciente");
messages.add( ActionMessages.GLOBAL_MESSAGE, error );
saveErrors(request, messages);
return new ActionForward(mapping.getInput());
}
// Se opcao=1 Incluir - nao pode existir igual - para incluir bExist deve ser = false
// Se opcao=2 LISTAR - tem que existir igual - para ALTERAR bExist deve ser = true
// Verificar Nome no Banco
boolean bExist = daoFornecedor.selectNomeFornecedorBoolean(sb.getNomeFornecedor());
boolean bExistListar = daoFornecedor.pesquisaNomeFornecedorListar(sb.getNomeFornecedor());
// Popular BEANS só nestes casos:
// se for Incluir e Nao Existe no BD
if(sb.getOpcao().equals("INCLUIR") && !bExist) {
System.out.println("Vai Incluir e Nao Existe no BD");
beanFornecedor.setNomeFornecedor(sb.getNomeFornecedor());
}
// Se for ALTERAR e Existir no BD
//if(sb.getOpcao().equals("ALTERAR") && bExist) {
if(sb.getNomeFornecedor() != null && bExist) {
System.out.println("Vai ALTERAR e Existe no BD!");
beanFornecedor = daoFornecedor.selectNomeFornecedor(sb.getNomeFornecedor());
}
// Lista todos nomes de fornecedores que contenha
if(sb.getOpcao().equals("LISTAR") && bExistListar) {
ArrayList beanFornecedorArray = daoFornecedor.listarTodosFornecedores(sb.getNomeFornecedor());
request.setAttribute("lFornecedor", beanFornecedorArray);
System.out.println("Populou lFornecedor com " + beanFornecedorArray.size());
}
if(sb.getOpcao().equals("LISTAR") && !bExistListar) {
ActionMessage error = new ActionMessage("error.nenhumRegistroEncontrado");
messages.add( ActionMessages.GLOBAL_MESSAGE, error );
saveErrors(request, messages);
return new ActionForward(mapping.getInput());
}
// se for Incluir e Existe no BD
if(sb.getOpcao().equals("INCLUIR") && bExist) {
System.out.println("** Fornecedor já Cadastrado! **");
ActionMessage error = new ActionMessage("error.inclusao");
messages.add( ActionMessages.GLOBAL_MESSAGE, error );
saveErrors(request, messages);
return new ActionForward(mapping.getInput());
}
// se for ALTERAR e Não Existe no BD
if(sb.getOpcao().equals("ALTERAR") && !bExist) {
System.out.println("** Fornecedor Inexistente para Alteração! **");
ActionMessage error = new ActionMessage("error.alteracao");
messages.add( ActionMessages.GLOBAL_MESSAGE, error );
saveErrors(request, messages);
return new ActionForward(mapping.getInput());
}
// Põe na sessão o resultado o beanFornecedor Populado
HttpSession session = request.getSession();
session.setAttribute("beanFornecedor", beanFornecedor);
session.setAttribute("opcao", sb.getOpcao());
//request.setAttribute("beanFornecedor", beanFornecedor);
//request.setAttribute("opcao", sb.getOpcao());
return mapping.findForward("success");
}
}
No Struts-config eu mudei a pagina de destino do path do forward, para detalhesFornecedor.jsp. Fiz um debug e o parametro vai até o metodo que faz o select no bd e depois ele retorna a pagina jsp detalhesFornecedor sem os detalhes deste fornecedor. Abaixo segue a pagina detalhesFornecedor.jsp para verificação. Não aparece nenhum erro, só não mostra os dados deste fornecedor no campo text do formulario.
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>Inclusão de Fornecedores</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" action="valida.do" method="post">
<table width="100%">
<tr height="12">
<td align="center" valign="middle"><b>Fornecedor</b></td>
</tr>
</table>
<br><br><br>
<table width="500" border="0" align="center">
<tr>
<td align="center">
<table width="100%" bgcolor="#EFF1F7" >
<tr align="rigth" class="cx8Titulo">
<td width="14%">Nome:</td>
<td width="86%" colspan="3" ><c:out value="${fornecedor.nomeFornecedor}" /></td>
</tr>
</table>
<table width="100%" bgcolor="#EFF1F7" >
<tr align="rigth" class="cx8Titulo">
<td width="14%">Razão Social:</td>
<td width="52%"><c:out value="${fornecedor.razaoSocialFornecedor}" /></td>
<td width="15%">CNPJ:</td>
<td width="19%"><c:out value="${fornecedor.cnpjFornecedor}" /></td>
</tr>
</table>
<table width="100%" bgcolor="#EFF1F7" >
<tr align="rigth" class="cx8Titulo">
<td width="14%">Inscrição Estadual:</td>
<td width="21%"><c:out value="${fornecedor.ieFornecedor}" /> </td>
<td width="12%">Cidade :</td>
<td width="19%"><c:out value="" /></td>
<td width="15%">Cep :</td>
<td width="19%"><c:out value="" /> </td>
</tr>
</table>
<table width="100%" bgcolor="#EFF1F7" >
<tr align="rigth" class="cx8Titulo">
<td width="14%">Tel Resid. :</td>
<td width="21%"> <c:out value="" /> </td>
<td width="12%">Tel Comer. :</td>
<td width="19%"> <c:out value="" /> </td>
<td width="15%">Tel Celular :</td>
<td width="19%"> <c:out value="" /> </td>
</tr>
</table>
<table width="100%" bgcolor="#EFF1F7" >
<tr align="rigth" class="cx8Titulo">
<td width="14%">Observação :</td>
<td width="86%"><c:out value="" /> </td>
</tr>
</table>
</td>
</tr>
</table>
<table width="500" border="0" align="center">
<tr>
<td align="center">
<input type="submit" value="VOLTAR" onclick="return voltar();">
</td>
</tr>
</table>
<br> <br> <br>
<table table width="500" border="0" align="center">
<tr>
<td align="center">
<font color="red" ><c:out value="${param.mensagem}" /></font>
</td>
</tr>
</table>
</form>
</body>
</html>
Vlw amigo.