Listar registros em pagina JSP usando Struts

Bom dia amigos,

Estou utilizando Struts 1.3.8 e tenho uma classe “SearchAction” que extende a Action, nesta classe existem algumas rotinas que fazem a inclusão, exclusão e consulta dos dados, através de actions.

Na action “CONSULTAR”, traz somente um unico registro, quando encontrado na base atarvés do parametro “Nome” que foi digidato no campo TEXT de um form na pagina principal, e mostra nos campos de um form na pagina “resulUsuario.jsp”.

Criei uma nova Action “LISTAR” no struts-config.xml que aponta para esta classe (SearchAction), e criei tb uma nova jsp “listaUsuario.jsp” onde queria que mostrasse todos os registros encontrados para um determinado paramentro (Ex: Na pagina principal, tenho um campo TEXT, onde digito o nome de usuario que quero pesquisar como por exemplo “Brasil” e depois clico no botao “LISTAR”, na base existem 3 registros que contém esta palavra no campo “nome_usuario”), quero criar uma rotina na classe “SearchAction” que consiga me retornar todos os registros encontrados com esta condição, que automaticamente vai setar para um ActionForward que vai listar esses 3 registros na “listaUsuario.jsp”. Como posso implementar isto amigos?

SearchAction:

package br.com.digidata.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.*;

import br.com.digidata.bean.SearchBean;
import br.com.digidata.paciente.*;

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;
		
		DAOPaciente daoPaciente = new DAOPaciente();
		BeanPaciente beanPaciente = new BeanPaciente();
		
		ActionMessages messages = new ActionMessages();
		
		if (sb.getNome() == null || sb.getNome().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 Consultar - tem que existir igual		- para consultar bExist deve ser = true 
		// Verificar Nome no Banco
		boolean bExist = daoPaciente.selectNomePacienteBoolean(sb.getNome());
		
		// 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");
			beanPaciente.setNomPaciente(sb.getNome());
		}
 
		
		// se for Consultar e Existe no BD
		if(sb.getOpcao().equals("CONSULTAR") && bExist) {
			System.out.println("Vai Consultar e Existe no BD");
			beanPaciente = daoPaciente.selectNomePaciente(sb.getNome());
			System.out.println("apos populado no BD nome:"+beanPaciente.getNomPaciente());
			System.out.println("apos populado no BD endereco:"+beanPaciente.getEndereco());
			System.out.println("apos populado no BD complemento:"+beanPaciente.getComplemento());
		}
		
		// Lista todos que encontrar
		if(sb.getOpcao().equals("LISTAR") && bExist) {
			System.out.println("Vai Consultar e Existe no BD e lista todos que encontrar");
			beanPaciente = daoPaciente.selectNomePaciente(sb.getNome());
			
			
		}

		// se for Incluir e Existe no BD
		if(sb.getOpcao().equals("INCLUIR") && bExist) {
			System.out.println("** Cliente já Cadastrado! **");
			ActionMessage error = new ActionMessage("error.inclusao");
			messages.add( ActionMessages.GLOBAL_MESSAGE, error );
			saveErrors(request, messages);	
			return new ActionForward(mapping.getInput());
			
		}
		// se for Consultar e Não Existe no BD
		if(sb.getOpcao().equals("CONSULTAR") && !bExist) {
			System.out.println("** Cliente 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 beanPaciente Populado
		request.setAttribute("beanPaciente", beanPaciente);
		request.setAttribute("opcao", sb.getOpcao());
		return mapping.findForward("success");
		
	}

}

Muito obrigado.

Att;
Igor Franco

Boa tarde Igor, tudo bem???
tem um problema parecido com o seu. Consegui listar todos os clientes encontrados no banco(estou usando struts 2.0), no final de cada registro tem um link chamado “ALTERAR”, a idéia é que abra a tela de cadastro de cliente com os campos preenchidos com os dados do cliente selecionado.
Como faço isso???
Abraço