JSF 2.0的问题

时间:2012-11-21 05:01:28

标签: jsf-2 primefaces

很抱歉因为我的问题再次打扰你们,这次我想用一个查询更新我的表单内容我的一个我的豆...我的查询它应该是根据的值来制作“beanInscripcion.alumno.curp”(注意“alumno”它是我制作的一个bean,并在我的bean“beanInscripcion”中实现它),它应该这样做的方法(查询)是“beanInscripcion.buscarAlumno”,它也是使用结果集更新“alumno”的值。我已经尝试了一段时间,但它只是不工作,它甚至没有进入我调试时的方法。我很绝望,希望有人知道我做错了什么。这是代码:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="./template.xhtml">
        <ui:define name="top">
            <h1>Módulo de Inscripción</h1>
        </ui:define>

        <ui:define name="body">
            <h:form id="form_datos">

                <h3>Introduce tu Curp para terminar de llenar tus datos</h3>

                    <h:outputLabel value="CURP" styleClass="requiredLbl"/>
                    <h:inputText id="CURP" label="CURP" 
                                 value="#{beanInscripcion.alumno.curp}" 
                                 size="30"
                                 required="true"/>
                    <p:commandButton id="boton_buscar"
                                     label="CURP"
                                     value="Buscar Datos"
                                     actionListener="#{beanInscripcion.buscarDatosAlumno}"
                                     update=":form_datos"/>

                    <h:panelGrid columns="2">
                    <p:tabView style="height: 420px">
                        <p:tab id="datosPersonales" title="Datos Personales">
                            <h:panelGrid columns="2">
                                <h:outputLabel value="Matricula" styleClass="requiredLbl" />
                                <h:outputLabel value="#{beanInscripcion.alumno.matricula}" styleClass="optionalLbl"/>
                                <h:outputLabel value="Nombre(s)" styleClass="requiredLbl"/>
                                <h:inputText id="nombres" label="Nombre" 
                                             value="#{beanInscripcion.alumno.nombre}" 
                                             size="30"
                                             required="true"/>  
                                <h:outputLabel value="Primer Apellido" styleClass="requiredLbl"/>
                                <h:inputText id="PrimerApellido" label="PrmerApellido" 
                                             value="#{beanInscripcion.alumno.primer_apellido}" 
                                             size="30"
                                             required="true"/>  
                                <h:outputLabel value="Segundo Apellido" styleClass="optionalLbl"/>
                                <h:inputText id="SegundoApellido" label="SegundoApellido" 
                                             value="#{beanInscripcion.alumno.segundo_apellido}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Fecha de Nacimiento" styleClass="requiredLbl"/>
                                <p:calendar value="#{beanInscripcion.alumno.fecha_nac}" 
                                            id="Fecha_nacimiento"
                                            navigator="true"
                                            pattern="yyyy-mm-dd">

                                </p:calendar>
                                <h:outputLabel value="Sexo" styleClass="requiredLbl"/>
                                <p:selectOneMenu id="Sexo" value="#{beanInscripcion.alumno.sexo}">  
                                    <f:selectItem itemLabel="Hombre" itemValue="h" />
                                    <f:selectItem itemLabel="Mujer" itemValue="f" />
                                </p:selectOneMenu>
                                <h:outputLabel value="Estado Civil" styleClass="requiredLbl"/>
                                <p:selectOneMenu id="Estado_civil" value="#{beanInscripcion.alumno.edo_civil}">  
                                    <f:selectItem itemLabel="Soltero" itemValue="s" />
                                    <f:selectItem itemLabel="Casado" itemValue="c" />
                                    <f:selectItem itemLabel="Divorciado" itemValue="d" />
                                    <f:selectItem itemLabel="Viudo" itemValue="v" />
                                </p:selectOneMenu>
                                <h:outputLabel value="Pais de Nacimiento" styleClass="requiredLbl"/>
                                <h:inputText id="Pais_nacimiento" label="Pais_nacimiento" 
                                             value="#{beanInscripcion.alumno.pais_nacimiento}" 
                                             size="30"
                                             required="true"/>
                                <h:outputLabel value="Nacionalidad" styleClass="requiredLbl"/>
                                <h:inputText id="Nacionalidad" label="Nacionalidad" 
                                             value="#{beanInscripcion.alumno.nacionalidad}" 
                                             size="30"
                                             required="true"/>
                                <h:outputLabel value="Escuela de Procedencia" styleClass="requiredLbl"/>
                                <h:inputText id="Escuela_procedencia" label="Escuela_procedencia" 
                                             value="#{beanInscripcion.alumno.escuela_procedencia}" 
                                             size="30"
                                             required="true"/>
                            </h:panelGrid>
                        </p:tab>

                        <p:tab title="Dirección y Contacto">
                            <h:panelGrid columns="2">
                                <h:outputLabel value="Email" styleClass="requiredLbl"/>
                                <h:inputText id="Email" label="Email" 
                                             value="#{beanInscripcion.alumno.email}" 
                                             size="30"
                                             required="true"/>  
                                <h:outputLabel value="Facebook" styleClass="optionalLbl"/>
                                <h:inputText id="Facebook" label="Facebook" 
                                             value="#{beanInscripcion.alumno.facebook}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Twitter" styleClass="optionalLbl"/>
                                <h:inputText id="Twitter" label="Twitter" 
                                             value="#{beanInscripcion.alumno.twitter}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Telefono" styleClass="optionalLbl"/>
                                <h:inputText id="Telefono" label="Telefono" 
                                             value="#{beanInscripcion.alumno.telefono}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Celular" styleClass="optionalLbl"/>
                                <h:inputText id="Celular" label="Celular" 
                                             value="#{beanInscripcion.alumno.celular}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Calle" styleClass="requiredLbl"/>
                                <h:inputText id="Calle" label="Calle" 
                                             value="#{beanInscripcion.alumno.calle}" 
                                             size="30"
                                             required="true"/>
                                <h:outputLabel value="Numero Interior" styleClass="optionalLbl"/>
                                <h:inputText id="Numero_interior" label="Numero_interior" 
                                             value="#{beanInscripcion.alumno.num_interior}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Numero Exterior" styleClass="requiredLbl"/>
                                <h:inputText id="Numero_exterior" label="Numero_exterior" 
                                             value="#{beanInscripcion.alumno.num_exterior}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Colonia" styleClass="requiredLbl"/>
                                <h:inputText id="Colonia" label="Colonia" 
                                             value="#{beanInscripcion.alumno.colonia}" 
                                             size="30"
                                             required="true"/> 
                                <h:outputLabel value="Codio Postal" styleClass="requiredLbl"/>
                                <h:inputText id="Codigo_postal" label="Codigo_postal" 
                                             value="#{beanInscripcion.alumno.codigo_postal}" 
                                             size="30"
                                             required="true"/> 

                                <h:outputLabel value="Estado" styleClass="requiredLbl"/>
                                <p:selectOneMenu id="Estado" value="#{beanInscripcion.alumno.id_estado}" style="width: 250px">  
                                    <p:ajax update="Municipio" listener="#{beanInscripcion.buscarMunicipios}"/>                
                                    <f:selectItem itemLabel="Elegir Estado" itemValue="" />
                                    <f:selectItems value="#{beanInscripcion.estados}"  
                                                   var="edo" itemLabel="#{edo.nombre_estado}" itemValue="#{edo.id_estado}" />  
                                </p:selectOneMenu> 

                                <h:outputLabel value="Municipio" styleClass="requiredLbl"/>
                                <p:selectOneMenu id="Municipio" value="#{beanInscripcion.alumno.id_municipio}" style="width: 250px">  
                                    <f:selectItem itemLabel="Elegir Municipio" itemValue="" />
                                    <f:selectItems value="#{beanInscripcion.municipios}"  
                                                   var="mun" itemLabel="#{mun.nombre_municipio}" itemValue="#{mun.id_municipio}" />  
                                </p:selectOneMenu>
                            </h:panelGrid>

                        </p:tab>

                        <p:tab title="Datos Académicos">
                            <p:panelGrid columns="2">

                            </p:panelGrid>
                        </p:tab>

                        <p:tab title="Datos Médicos">
                            <p:panelGrid columns="2">

                            </p:panelGrid>
                        </p:tab>
                    </p:tabView>
                </h:panelGrid>

                <p:commandButton id="boton_inscribir"
                                 value="Aceptar" 
                                 action="#{beanInscripcion.insertarDatosAlumno}" 
                                 ajax="false"/>
            </h:form>

        </ui:define>
    </ui:composition>
</html>

这是“beanInscripcion”:

    package inscripcion;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class BeanInscripcion implements Serializable {

    static String strURL;
    private ArrayList<Estado> estados;
    private ArrayList<Municipio> municipios;
    private Alumno alumno;


    public BeanInscripcion() {
        estados = new ArrayList<Estado>();
        municipios = new ArrayList<Municipio>();
        alumno = new Alumno();
    }

    public ArrayList<Estado> getEstados() throws SQLException {
        buscarEstados();
        return estados;
    }

    public void setEstados(ArrayList<Estado> estados) {
        this.estados = estados;
    }

    public ArrayList<Municipio> getMunicipios() throws SQLException {
        return municipios;
    }

    public void setMunicipios(ArrayList<Municipio> municipios) {
        this.municipios = municipios;
    }

    public Alumno getAlumno() {
        return alumno;
    }

    public void setAlumno(Alumno alumno) {
        this.alumno = alumno;
    }

    public Connection getConnection() {
        try {
            strURL = "jdbc:mysql://localhost:3306/mydb";
            Class.forName("com.mysql.jdbc.Driver");
            return DriverManager.getConnection(strURL, "root", "rootroot");
        } catch (SQLException ex) {
            return null;
        } catch (ClassNotFoundException ex) {
            return null;
        }
    }

    public void buscarEstados() throws SQLException {
        estados.clear();
        Connection connection = getConnection();
        Statement statement = connection.createStatement();
        ResultSet result = statement.executeQuery("SELECT * FROM estado");
        result.beforeFirst();
        while (result.next()) {
            Estado estado = new Estado();
            estado.setId_estado(result.getInt("id_estado"));
            estado.setNombre_estado(result.getString("nombre_estado"));
            estados.add(estado);
        }
    }

    public void buscarMunicipios() throws SQLException {
        municipios.clear();
        Connection connection = getConnection();
        Statement statement = connection.createStatement();
        ResultSet result = statement.executeQuery("SELECT id_municipio, nombre_municipio FROM municipio WHERE Estado_id_estado = "
                + alumno.getId_estado());
        result.beforeFirst();
        while (result.next()) {
            Municipio municipio = new Municipio();
            municipio.setId_municipio(result.getInt("id_municipio"));
            municipio.setNombre_municipio(result.getString("nombre_municipio"));
            municipios.add(municipio);
        }
    }

    public void buscarDatosAlumno() throws SQLException {
        Connection connection = getConnection();
        Statement statement = connection.createStatement();
        ResultSet result = statement.executeQuery("SELECT * FROM preinscripciones WHERE curp = '"
                + alumno.getCurp() + "'");
        result.beforeFirst();
        while(result.next()){
        alumno.setNombre(result.getString("nombre"));
        alumno.setPrimer_apellido(result.getString("primer_apellido"));
        alumno.setSegundo_apellido(result.getString("segundo_apellido"));
        }
    }

    public void insertarDatosAlumno() throws SQLException {
        Connection connection = getConnection();
        Statement statement = connection.createStatement();
        /*statement.executeUpdate("UPDATE inscripciones SET fecha_nac = '" + alumno.getFecha_nac() + "' , sexo = '" + alumno.getSexo()
                + "' , estado_civil = '" + alumno.getEdo_civil() + "' , pais_nac = '" + alumno.getFecha_nac() + "' , nacionalidad = '" + alumno.getNacionalidad() + "' ,"
                + "fecha_inscripcion = (select curdate()) , Escuela_procedencia_id_procedencia = " + alumno.getEscuela_procedencia() + " WHERE preinscripciones_curp = '" + alumno.getCurp() + "'");
        */
    }
}

我不会粘贴其他bean(alumno,estado,municipio)导致我使用它们作为数据容器并且它们工作正常我只是不能让我的bean访问方法“beanInscripcion.buscarAlumno”

哦是的,我没有添加@ManagedBean和@AnyScope标记因为我在faces-config.xml中做了bean声明

0 个答案:

没有答案