Quiero realizar un autocompletado en JSF.
La idea es la siguiente:
la cosa es facilitar al usuario en la busqueda de rfc por nombres o por el mismo rfc, lo que quiero es que cuando el usuario vaya escribiendo una letra, los posibles resultados aarezcan en una tabla abajo del campo y cada vez que escriba otra letra vaya reduciendo los posibles candidatos y despues mandarlos datos encontrados a otra pagina, para eso estoy utilizando un dataTable.
este ya me funciona en jsp con ajax, pero lo quiero para jsf, ya tengo el bean y todo. El problema que tengo es cuando le asigno al evento del campo de texto no funciona, el servidor tomcat me dice que no encuentra en atributo. y cuando los agrego al faces-config.xml y hago un deploy me dice que no encuentra el facesContext.
si alguien me puede ayudar se lo agradecere y si me pueden ayudar como hacerlo con ajax y jsf mejor.
aqui esta una pequeña parte de codigo para que me entiendad:
Buscar.jsp
Cita:
Mi Bean <h:form>
<h:outputText value="R.F.C."/>
<h:inputText id="rfc" value="#{empleados.rfc}" onkeyup="#{empleados.buscar}"/>
<br/>
<br/>
<div id="content">
<h:dataTable width="446" border="1" value="#{empleados.lista}" var="item"
style="" >
<f:facet name="header">
<h:outputText value="Empleados"/>
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="RFC"/>
</f:facet>
<h:outputText value="#{item.rfc}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="HOMOCLAVE"/>
</f:facet>
<h:outputText value="#{item.homoclave}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NOMBRE"/>
</f:facet>
<h:outputText value="#{item.nombre}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="OPCION"/>
</f:facet>
<h:outputText value="#{item.opcion}"/>
</h:column>
</h:dataTable>
<div id="resultado">
</div>
</h:form>
<h:outputText value="R.F.C."/>
<h:inputText id="rfc" value="#{empleados.rfc}" onkeyup="#{empleados.buscar}"/>
<br/>
<br/>
<div id="content">
<h:dataTable width="446" border="1" value="#{empleados.lista}" var="item"
style="" >
<f:facet name="header">
<h:outputText value="Empleados"/>
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="RFC"/>
</f:facet>
<h:outputText value="#{item.rfc}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="HOMOCLAVE"/>
</f:facet>
<h:outputText value="#{item.homoclave}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NOMBRE"/>
</f:facet>
<h:outputText value="#{item.nombre}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="OPCION"/>
</f:facet>
<h:outputText value="#{item.opcion}"/>
</h:column>
</h:dataTable>
<div id="resultado">
</div>
</h:form>
Cita:
de antemano gracias... public class TableData {
public String rfc;
public String homoclave;
public Vector lista ;
public MovPersonal empleado = null;
public void obtenerDatos(){
ResultSQL sql = null;
ResultSet rs = null;
Vector empleados = null;
try {
sql = new ResultSQL();
sql.setVar1(getRfc());
rs = sql.getResultEmpleadosRFCRs("busquedaEmpleado");
empleados = new Vector();
while(rs.next()){
empleado = new MovPersonal();
empleado.setRfc(rs.getString(1));
empleado.setHomoclave(rs.getString(2));
empleado.setNombreCompleto(rs.getString(3));
empleados.addElement(empleado);
}
setLista(empleados);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public String getHomoclave() {
return homoclave;
}
public void setHomoclave(String homoclave) {
this.homoclave = homoclave;
}
public String getRfc() {
return rfc;
}
public void setRfc(String rfc) {
this.rfc = rfc;
}
public Vector getLista() {
return lista;
}
public void setLista(Vector lista) {
this.lista = lista;
}
public MovPersonal getEmpleado() {
return empleado;
}
public void setEmpleado(MovPersonal empleado) {
this.empleado = empleado;
}
}
public String rfc;
public String homoclave;
public Vector lista ;
public MovPersonal empleado = null;
public void obtenerDatos(){
ResultSQL sql = null;
ResultSet rs = null;
Vector empleados = null;
try {
sql = new ResultSQL();
sql.setVar1(getRfc());
rs = sql.getResultEmpleadosRFCRs("busquedaEmpleado");
empleados = new Vector();
while(rs.next()){
empleado = new MovPersonal();
empleado.setRfc(rs.getString(1));
empleado.setHomoclave(rs.getString(2));
empleado.setNombreCompleto(rs.getString(3));
empleados.addElement(empleado);
}
setLista(empleados);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public String getHomoclave() {
return homoclave;
}
public void setHomoclave(String homoclave) {
this.homoclave = homoclave;
}
public String getRfc() {
return rfc;
}
public void setRfc(String rfc) {
this.rfc = rfc;
}
public Vector getLista() {
return lista;
}
public void setLista(Vector lista) {
this.lista = lista;
}
public MovPersonal getEmpleado() {
return empleado;
}
public void setEmpleado(MovPersonal empleado) {
this.empleado = empleado;
}
}