2016-04-24 5 views
0

私はウェブプログラミングには新しく、適切な接続を行い、ドロップダウンにデータが入力されるようにします。 Eclipse、最新のJDK、Wildfly 10サーバー、MySQLサーバー5.7、Primefaces 5.3、Javax.faces 2.2を使用しています。プライムサーフェスselectonemenuは入力外のデータを表示します

これはページです:

<?xml version='1.0' encoding='UTF-8'?> 
 
<!DOCTYPE html> 
 
<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:p="http://primefaces.org/ui" 
 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
 
     xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 
 
     > 
 

 
<head> 
 
\t <title>combobox</title> 
 
</head> 
 
<body> 
 

 

 
\t <h:form id="form1"> 
 
\t \t <p:panel header="Ingreso" style="width: 600px;"> 
 
\t \t \t <h:panelGrid columns="2"> 
 
\t \t \t \t <h:outputText value="Provincia: " /> 
 
\t \t \t \t <p:selectOneMenu value="#{Usuario.provincia}" id="prov" 
 
           valueChangeListener="#{Usuario.processCant()}" > 
 
\t \t \t \t \t <f:selectItem itemLabel="Seleccione" itemValue="" /> 
 
\t \t \t \t \t <f:selectItems value="#{Usuario.provincias}" /> \t 
 
\t \t \t \t \t <p:ajax update="cant" event="change" /> \t \t \t \t 
 
\t \t \t \t </p:selectOneMenu> 
 
\t \t \t \t 
 
\t \t \t \t <h:outputText value="Cantón: " /> 
 
       <p:selectOneMenu value="#{Usuario.canton}" id="cant" valueChangeListener="#{Usuario.processParr()}"> 
 
         <f:selectItem itemLabel="Seleccione" itemValue="" /> 
 
         <f:selectItems value="#{Usuario.cantones}"/> 
 
         <p:ajax update="parr" event="change" /> \t 
 
       </p:selectOneMenu> 
 
       
 
       <h:outputText value="Parroquia: " /> 
 
       <p:selectOneMenu value="#{Usuario.parroquia}" id="parr"> 
 
         <f:selectItem itemLabel="Seleccione" itemValue="" /> 
 
         <f:selectItems value="#{Usuario.parroquias}"/> 
 
       </p:selectOneMenu> 
 
        
 
\t \t \t </h:panelGrid> 
 
\t \t \t 
 
\t \t </p:panel> 
 
\t </h:form> 
 
</body> 
 
</html>

そして、これはJavaで、

@ManagedBean(name="Usuario") 
@SessionScoped 
public class Usuario implements Serializable { 
    private static final long serialVersionUID = 1L; 
    private int ID; 
    private String nombre; 
    private String apellido; 

    private String fecha; 
    private String lugar; 
    private String numero; 
    private String Provincia; 
    private List<SelectItem> Provincias; 
    private String Canton; 
    private List<SelectItem> Cantones; 
    private String Parroquia; 
    private List<SelectItem> Parroquias; 

    public List<SelectItem> getProvincias() { 
     List<SelectItem> catProvincias = new ArrayList<SelectItem>(); 
     try { 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/schema", "root", "root"); 
      Statement st = con.createStatement(); 
      ResultSet rs = null; 
      String myQuery = "SELECT Provincia FROM `schema`.provincia;"; 
      rs = st.executeQuery(myQuery); 
      while (rs.next()) { 
       catProvincias.add(new SelectItem(rs.getString("Provincia"))); 
      } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
     return catProvincias; 
    } 
    public List<SelectItem> getCantones() { 
     List<SelectItem> catCantones = new ArrayList<SelectItem>(); 
     try { 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/schema", "root", "root"); 
      Statement st = con.createStatement(); 
      ResultSet rs = null; 
      String myQuery = "SELECT Canton FROM `schema`.Canton WHERE Padre=(select Provincia from `schema`.Provincia where Provincia='"+ Provincia + "')"; 

      rs = st.executeQuery(myQuery); 
      while (rs.next()) { 
       catCantones.add(new SelectItem(rs.getString("Canton"))); 
      } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
     return catCantones; 
    } 
    public List<SelectItem> getParroquias() { 
     List<SelectItem> catParroquias = new ArrayList<SelectItem>(); 
     try { 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/schema", "root", "root"); 
      Statement st = con.createStatement(); 
      ResultSet rs = null; 
      String myQuery = "SELECT Parroquia FROM `schema`.parroquia WHERE Padre=(select Canton from `schema`.Canton where Canton='"+ Canton +"')"; 
      rs = st.executeQuery(myQuery); 
      while (rs.next()) { 
       catParroquias.add(new SelectItem(rs.getString("Parroquia"))); 
      } 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
     return catParroquias; 
    } 
    public void processCant() { 
     getCantones(); 
    } 
    public void processParr() { 
     getParroquias(); 
    } 

...

そして、これが結果です: result

データが外部に複製されているのを見てもわかるように、存在しないinputTextが表示され、スタイルはPrimefaceのように見えます。何が起こっているのか分かりません。

答えて

1

<head></head>タグをjsf固有の<h:head></h:head>タグに置き換えて、PrimeFacesに必要なjsファイルとcssファイルをすべてインポートさせる必要があります。

+0

これは行為の問題でもありました。私はそれをに変更しなければなりませんでした。 – Newbee

関連する問題