Olá,
Estou desenvolvendo um Controller onde eu listo vários , mas um select depende do outro,
vamos supor eu selecione um medico em um, e ele lista as especialidades em outro, até ai tudo bem, eu consigo fazer
mas fica feio, eu acabei passando varios paramos no controller, não acredito que esteja ficando do geito certo.
Qual seria a melhor forma de fazer isso?
Segue meu controller
@Resource
public class AutorizadorController {
Result result;
CredenciadoDAO credDao;
EspecialidadeDAO especDao;
BeneficiarioDAO beneDao;
LoginManager login;
Local local;
public AutorizadorController(Result result, CredenciadoDAO credDao,
EspecialidadeDAO especDao, BeneficiarioDAO beneDao,
LoginManager login) {
this.result = result;
this.credDao = credDao;
this.especDao = especDao;
this.beneDao = beneDao;
this.login = login;
this.local = null;
}
// esse que acredito que não está legal
@Get
@Path("/autorizador")
public void autorizador(String sMed, String sLocal, String sCart, String sEspec) throws SQLException {
if (this.login.isLogado() == false) {
result.redirectTo(AcessoController.class).acesso();
}
this.result.include("listaCredenciado", this.credDao.listaCredLocal(1));
if (sMed != null & sLocal != null) {
int iMed = Integer.parseInt(sMed);
int iLocal = Integer.parseInt(sLocal);
try {
this.result.include("listaEspecialidade", this.especDao.listaEspecMedicoLocal(iLocal, iMed));
} catch (Exception ex) {
result.redirectTo(ErroController.class).erro(ex.getMessage());
}
}
if (sCart != null) {
Beneficiario beneficiario = new Beneficiario();
beneficiario = beneDao.pegaNomeBeneViaCart(sCart);
this.result.include("cartBene", beneficiario.getCarteirinha());
this.result.include("nomeBene", beneficiario.getNome());
this.result.include("bloqBene", beneficiario.getBloqueado());
this.result.include("cancBene", beneficiario.getCancelado());
this.result.include("inadBene", beneficiario.getInadimplente());
}
if (sCart != null & sMed != "" & sEspec != "") {
int iMed = Integer.parseInt(sMed);
int iEspec = Integer.parseInt(sEspec);
this.result.include("retBene", beneDao.getRetorno(sCart, iMed, iEspec));
}
}
// aqui comecei a refazer ele
//
@Path("/autorizador2")
public void autorizador2(Local local, Credenciado credenciado) {
if (this.login.isLogado() == false) {
result.redirectTo(AcessoController.class).acesso();
} else {
try {
//int idlocal = local.getId();
//this.result.include("listaCredenciado", this.credDao.listaCredLocal(local.getId()));
this.result.include("listaCredenciado", this.credDao.listaCredLocal(local.getId()));
if (credenciado != null) {
this.result.include("listaEspecCred", this.especDao.listaEspecMedicoLocal(local.getId(), credenciado.getCod()));
}
} catch (SQLException ex) {
result.redirectTo(ErroController.class).erro(ex.getMessage());
} catch (Exception ex) {
result.redirectTo(ErroController.class).erro(ex.getMessage());
}
}
}
}