2016-04-24 3 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

Как вы можете видеть, данные отображаются дублирующимися снаружи, отображается неиспользуемый вводText, и стиль действительно выглядит как Primefaces вообще, я понятия не имею, что происходит, пожалуйста, совет.

ответ

1

Вы должны заменить теги <head></head> специальными тегами <h:head></h:head> jsf, чтобы заставить PrimeFaces импортировать все необходимые файлы js и css.

+0

это была проблема на деле, также мне пришлось изменить его на Newbee

Смежные вопросы