Olá gente,
Estou precisando passar mais de um atributo para fazer uma busca, estou fazendo dessa forma:
[code]
// cidade/edita.jsp
<tr>
<td colspan="3"> Busca<SELECT NAME="tipoBusca"
ID="tipoBuscaid">
<OPTION VALUE="nome">1- Cidade</OPTION>
<OPTION VALUE="uf">2- UF</OPTION>
<OPTION VALUE="codIbgeCidade">3- Código IBGE Cidade</OPTION>
<OPTION VALUE="codIbgeUf">4- Código IBGE Estado</OPTION>
</SELECT></td>
<td colspan="2">
<form action="<c:url value="/cidade/busca"/>"><input
name="nomeInput" /></form>
</td>
</tr>[/code]
sendo que eu preciso passar o “tipoBusca” e o “nameInput”
daí na minha classe CidadeController:
public List<Cidade> busca(String nomeInput,String tipoBusca) {
result.include("nome", nomeInput);
return dao.busca(nomeInput,tipoBusca);
}
e na minha classe CidadeDao:
[code]
public List busca(String nome, String tipoBusca) {
if(tipoBusca.equals(“name”)){
return session.createCriteria(Cidade.class).add(Restrictions.ilike(“nome”, nome, MatchMode.ANYWHERE))
.list();
}else if (tipoBusca.equals(“uf”)) {
return session.createCriteria(Cidade.class).add(Restrictions.ilike(“uf”, nome, MatchMode.ANYWHERE))
.list();
}else if (tipoBusca.equals(“codIbgeCidade”)) {
return session.createCriteria(Cidade.class).add(Restrictions.ilike(“codibgecidade”, nome, MatchMode.ANYWHERE))
.list();
}else {
return session.createCriteria(Cidade.class).add(Restrictions.ilike("codibgeuf", nome, MatchMode.ANYWHERE))
.list();
}
} [/code]
bom… o problema eh que o “tipoBusca”, esta vindo NULL…
o que eu preciso fazer para que ele venha preenchido?
outra coisa, se alguém souber q um jeito mais ELEGANTE de se fazer essa busca, me da um Toque! ;D
desde já
Obrigada!