Olá pessoal, fiz uma tela em jsp e estou tentando eliminar alguns comboBox que usei,
usando assim um campo para o usuario digitar o codigo do item a ser inserido ou entao digitar o nome e clicar em localizar
para ele retornar uma pesquisa no banco em um ModalPanel.
Consegui fazer a chamada do modal, preenchendo ele com todos os dados, mais não consegui pegar os dados
que são digitados no campo para fazer a pesquisa, é ai q entrou denovo minha duvida quanto a Reflection.
Em que ponto a reflection é disparada?
Em que dado momento os dados do browser do cliente é inserido no bean no servidor de forma a poder ser manipulado ??
Vou mandar o codigo, para ver se alguem pode me ajudar.
Agendar.jsp
<tr>
<td><h:outputText value="Tipo de Agenda" /></td>
<td><h:outputText value="Código: " /> <h:inputText
id="idTpAgenda" value="#{agendarHandler.tipoAgendaSelecionada}"
size="10" /> <h:outputText value="Descrição: " /> <h:inputText
id="descTpAgenda" value="#{agendarHandler.buscaDescricao}" /></td>
<td><a4j:commandButton value="Buscar"
action="#{agendarHandler.buscarTipoAgenda}"
reRender="idTpAgenda, descTpAgenda" id="btnBuscarTpAgenda"
size="7" image="/images/icons/buscar.gif">
<rich:componentControl event="onclick" attachTo="btnBuscarTpAgenda" operation="show"
for="pnBuscaTpAgenda" />
</a4j:commandButton></td>
</tr>
Fora do form
<rich:modalPanel id="pnBuscaTpAgenda" height="300" width="600">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Pesquisa de Tipo de Agenda" />
</h:panelGroup>
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:graphicImage value="images/icons/fecharModal.gif"
style="cursor:pointer;" id="linkFechar3" />
<rich:componentControl for="pnBuscaTpAgenda"
attachTo="linkFechar3" event="onclick" operation="hide"></rich:componentControl>
</h:panelGroup>
</f:facet>
<h:outputText value="Selecione um Tipo de Agenda abaixo: " />
<center><br />
<br />
<rich:dataTable rowClasses="linha2, linha1"
value="#{agendarHandler.tipoAgendaSelecionada}" var="f"
rendered="#{not empty agendarHandler.buscarTipoAgenda}" rows="10"
id="listaTpAgenda">
<f:facet name="header">
<rich:columnGroup>
<rich:column>
<h:outputText value="Código" />
</rich:column>
<rich:column>
<h:outputText value="Descrição" />
</rich:column>
<rich:column>
<h:outputText value="Selecionar" />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>
<h:outputText value="#{f.id}"></h:outputText>
</rich:column>
<rich:column>
<h:outputText value="#{f.descricao}"></h:outputText>
</rich:column>
<rich:column>
<a4j:commandLink actionListener="#{usuarioHandler.altera}"
reRender="CadUsuario">
<h:outputText value="Selecionar" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
<center><h:outputText value="#{clienteHandler.mensagem}"
id="msgCliente" /> <br />
<h:outputText value="#{clienteHandler.erro}" /> <br />
<br />
<br />
<br />
<h:graphicImage value="images/icons/ok.gif" style="cursor:pointer;"
id="linkFechar4" /> <rich:componentControl for="pnBuscaTpAgenda"
attachTo="linkFechar4" event="onclick" operation="hide" /></center>
</center>
</rich:modalPanel>
AgendarHandler.java
public class AgendarHandler {
private Agenda agenda = new Agenda();
private List<Agenda> agendas = new ArrayList<Agenda>();
private List<LocalAtendimento> exameLocal = new ArrayList<LocalAtendimento>();
private String mensagem;
private String erro;
private String funcionarioSelecionado;
private String clienteSelecionado;
private String profissionaldesaudeSelecionado;
private String localAtendimentoSelecionado;
private Integer tipoAgendaSelecionada;
private String buscaDescricao;
public String getBuscaDescricao() {
return buscaDescricao;
}
public void setBuscaDescricao(String buscaDescricao) {
this.buscaDescricao = buscaDescricao;
}
public List<LocalAtendimento> getExameLocal() {
return exameLocal;
}
public String procedimentoExameSelecionado = null;
public String getProcedimentoExameSelecionado() {
return procedimentoExameSelecionado;
}
public void setProcedimentoExameSelecionado(
String procedimentoExameSelecionado) {
this.procedimentoExameSelecionado = procedimentoExameSelecionado;
}
@SuppressWarnings("unchecked")
public static List<LocalAtendimento> getListaExameLocal(
String procedimentoExameSelecionado) {
try {
Session s = HibernateUtil.currentSession();
String sql = "Select nomfant_locatend, id_locatend from LocalAtendimento where id_locatend=(Select id_locatend from ExameLocal where id_procex= :procedimentoExameSelecionado)";
SQLQuery qryExameLocal = s.createSQLQuery(sql);
qryExameLocal.setParameter("procedimentoExameSelecionado",
procedimentoExameSelecionado);
qryExameLocal.setResultTransformer(Transformers
.aliasToBean(LocalAtendimento.class));
System.out.println("Query Exame Local executada com sucesso.");
return qryExameLocal.list();
} catch (Exception e) {
System.out.println("ERRO QUERY Exame Local : " + e.getMessage());
e.printStackTrace();
return null;
}
}
public List<TipoAgenda> getBuscarTipoAgenda() {
//TESTE
System.out.println(this.getTipoAgendaSelecionada());
System.out.println(this.buscaDescricao);
List<TipoAgenda> retornaTpAgenda = TipoAgendaHandler.BuscaTipoAgenda(
tipoAgendaSelecionada, buscaDescricao);
System.out.println(retornaTpAgenda.size());
return retornaTpAgenda;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public Agenda getAgenda() {
return agenda;
}
public void setAgenda(Agenda agenda) {
this.agenda = agenda;
}
public List<Agenda> getAgendas() {
return agendas;
}
public void setAgendas(List<Agenda> agendas) {
this.agendas = agendas;
}
public String getErro() {
return erro;
}
public void setErro(String erro) {
this.erro = erro;
}
public String getFuncionarioSelecionado() {
return funcionarioSelecionado;
}
public void setFuncionarioSelecionado(String funcionarioSelecionado) {
this.funcionarioSelecionado = funcionarioSelecionado;
}
public String getClienteSelecionado() {
return clienteSelecionado;
}
public void setClienteSelecionado(String clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
public String getLocalAtendimentoSelecionado() {
return localAtendimentoSelecionado;
}
public void setLocalAtendimentoSelecionado(
String localAtendimentoSelecionado) {
this.localAtendimentoSelecionado = localAtendimentoSelecionado;
}
public String getProfissionaldesaudeSelecionado() {
return profissionaldesaudeSelecionado;
}
public void setProfissionaldesaudeSelecionado(
String profissionaldesaudeSelecionado) {
this.profissionaldesaudeSelecionado = profissionaldesaudeSelecionado;
}
public void setExameLocal(List<LocalAtendimento> exameLocal) {
this.exameLocal = exameLocal;
}
public Integer getTipoAgendaSelecionada() {
return tipoAgendaSelecionada;
}
public void setTipoAgendaSelecionada(Integer tipoAgendaSelecionada) {
this.tipoAgendaSelecionada = tipoAgendaSelecionada;
}
}
TipoAgendaHandler.java
public List<TipoAgenda> getTipoAgendas() {
System.out.println("Lendo Tipo de Agenda...");
Session session = HibernateUtil.currentSession();
Dao<TipoAgenda> dao = new Dao<TipoAgenda>(session, TipoAgenda.class);
return dao.list();
}
@SuppressWarnings("unchecked")
public static List<TipoAgenda> BuscaTipoAgenda(Integer id, String descricao) {
Session session = HibernateUtil.currentSession();
Criteria crit = session.createCriteria(TipoAgenda.class);
//if (id != null) {
// crit.add(Restrictions.ilike("id", id,
// MatchMode.ANYWHERE));
//}
if (descricao != null) {
crit.add(Restrictions.ilike("descricao", descricao,
MatchMode.ANYWHERE));
}
crit.addOrder(Order.asc("id"));
return crit.list();
}
TipoAgenda.java
public class TipoAgenda {
@Id
@GeneratedValue
@Column(name="id_tpagenda")
private Integer id;
@Column(name="desc_tpagenda", nullable=false, length=40)
private String descricao;
@Column(name="ativo_tpagenda")
private Boolean ativo = true;
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
this.ativo = ativo;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
O Problema é que quando clico no btnBuscarTpAgenda, os valores não são enviados ao Bean.
Alguem pode ajudar ??