Chamar método passando vários parâmetros. Qual a melhor forma?

Pessoal,

Tenho um bean chamado Pessoa ( que contém os métodos get e set) e um outro PessoaFacade( com os métodos incluir, alterar, pesquisar, etc).

Fiz um form de pesquisa onde eu só informava o nome e o mesmo chamava o método pesquisar com um parâmetro busca. Até aí beleza.

Agora o meu usuário preencherá um form que contém uns 15 campos para pesquisa (ele pode preencher todos ou apenas alguns). O que eu estou fazendo:

Quando ele preencher os campos e clicar em pesquisar eu estou mandando para uma página pesquisa.jsp
Em vez de passar os 15 parâmetros para o método estava querendo passar apenas o objeto, mas não obtive êxito.

Segue abaixo a minha idéia:

<jsp:useBean id=“conexao” class=“utils.Conecta” />
<jsp:setProperty name=“conexao” property="*" />

<jsp:useBean id=“pessoa” class=“beans.Pessoa” />
<jsp:setProperty name=“pessoa” property="*" />

<jsp:useBean id=“pessoaFacade” class=“beans.PessoaFacade” />
<jsp:setProperty name=“pessoaFacade” property="*" />

//parâmetro
String busca = request.getParameter(“busca”);

//efetua a pesquisa
pessoa.setNome(busca);
pessoas = pessoaFacade.pesquisar(pessoa);

No pessoaFacade tenho o método pesquisar();

//pesquisa pessoas desaparecidas
public synchronized java.util.Vector pesquisar(Pessoa pess) {
try {
//prepara
ps = con.prepareStatement(" SELECT a.cd_pessoa, a.nome, a.foto" +
" , to_char(a.data_desap,‘DD/MM/YYYY’) as data_desap" +
" , b.cd_cidade, b.dsc_cidade, b.cd_estado" +
" FROM pessoa_desaparecida a, cidade b" +
" WHERE a.cd_cidade = b.cd_cidade" +
" and upper(a.nome) LIKE upper(’%?%’)" +
" ORDER BY a.data_inclusao desc");

        //seta
        ps.setString(1, pess.getNome());
        
        //executa
        ResultSet rs1 = ps.executeQuery();
        if(rs1.next()) {
            //vetor
            java.util.Vector pessoas= new java.util.Vector();
            do {
                //instancia estado
                Estado estado = new Estado( rs1.getString("cd_estado") );
                //instancia cidade
                Cidade cidade = new Cidade( rs1.getInt("cd_cidade")
                                          , rs1.getString("dsc_cidade")
                                          , estado);
                //instancia pessoa desaparecida
                Pessoa pessoa = new Pessoa( rs1.getInt("cd_pessoa")
                                                                  , cidade
                                                                  , rs1.getString("nome")
                                                                  , rs1.getString("data_desap")
                                                                  , rs1.getString("foto") );
                //adiciona ao vetor
                pessoas.add(pessoa);
            } while(rs1.next());
            return pessoas;
        } else return null;
    } catch(Exception ex) {
        ex.printStackTrace();
        return null;
    }
}

Não acha nada na pesquisa.
Será que estou fazendo errado.
Tá certo essa parte? ps.setString(1, pess.getNome());

No exemplo acima está apenas com um campo, mas o que estou fazendo ele tem mais de 10 campos.

Qualquer ajuda será bem-vinda.

Valeu!!!

isso não lança nenhuma exception ??

vc testou sua query, fez teste nela, está funcionando sem problemas ??

ps: quando postar codigo lembre de colocar entra as tag’s “code” !!!