powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF и ComboBox
9 сообщений из 9, страница 1 из 1
JSF и ComboBox
    #33997941
java_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!
Необходимо в ComboBox поместить значения из базы данных.
Класс модель:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 public   class  FacultyInfo {
   private  Integer id;
   private  String facultyName;

   public  FacultyInfo() {
  }
  //----------------------------------------------------------//
   public   void  setId(Integer id) {
     this .id = id;
  }
   public  Integer getId() {
     return  id;
  }
  //----------------------------------------------------------//
   public   void  setFacultyName(String facultyName) {
     this .facultyName = facultyName;
  }
   public  String getFacultyName() {
     return  facultyName;
  }
  //----------------------------------------------------------//
}

В классе работы с бд метод, который достает значения из таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
   public  List selectFacult() {
    List facult =  new  ArrayList();
    
    Connection con =  null ;
    
    String selectFac = "Select FacultyName from FacultyInfo";
     try  {
      con =  this .getConnection();
      PreparedStatement pSt = con.prepareStatement(selectFac);
      ResultSet rs = pSt.executeQuery();
      
       while  (rs.next()) {
        FacultyInfo fi =  new  FacultyInfo();
        fi.setFacultyName( new  String(rs.getString("FacultyName")));
        facult.add(fi);
      }
      rs.close();
      pSt.close();
      con.close();
    }
     catch (Exception ex) {
      ex.printStackTrace();
    }
     return  facult;
  }

В классе-контроллере метод, вызывающий метод указанный выше:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public  String selectFacultets() {
     try  {
      facs = db.selectFacult();
    }
     catch  (Exception ex) {
       return  "Error in select facultets";
    }
     return  "selectFacultet";
  }

И неполный jsf-ный код (не знаю как его правильно реализовать)
Код: plaintext
1.
2.
<h:selectOneMenu id="type" value="#{stHandler.selectFacultets}">          
</h:selectOneMenu>
...
Рейтинг: 0 / 0
JSF и ComboBox
    #33998911
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простите коллега, немного тяжело понять код.
я бы рекомендовал вам создать модель данных для JComboBox, а уж ее потом прикрутить к JComboBox
например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public   class  UnitComboBoxModel  extends  DefaultComboBoxModel {
	 private   static  String[] units = { "piece", "kg.", "l.", "meter" };

	 private   static  Vector data =  new  Vector(Arrays.asList(units));

	 public  UnitComboBoxModel() {
		 super (data);
	}
}
прикручиваем модель к компоненту:
Код: plaintext
1.
2.
3.
4.
	
		JComboBox box= new  JComboBox();
		box.setModel( new  UnitComboBoxModel);

в вашем случае в классе модели обращаетесь к базе и создаете свой список для отображения.
...
Рейтинг: 0 / 0
JSF и ComboBox
    #33998955
java_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы немного не правильно поняли, я говорю об элементах JSF selectOneMenu, а не о свинговом элементе JComboBox
...
Рейтинг: 0 / 0
JSF и ComboBox
    #33999129
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например:
Код: plaintext
1.
2.
3.
<h:selectOneMenu id="type" value="#{stHandler.selectFacultets}"> 
    <f:selectItems id="siTнзу" value="#{stHandler.allFacultets}"/>
</h:selectOneMenu>
далее:
Код: plaintext
1.
2.
3.
4.
     public  SelectItem[] getAllFacultet() {
        // может быть много чего, а может и не быть
         return  allFacultet;
    }
читать на тему SelectItem[]
напримир:
Код: plaintext
1.
2.
3.
4.
5.
     public  SelectItem[] arrayListToSelectItem(ArrayList<SelectItem> arrayList) {
        SelectItem[] result =  new  SelectItem[arrayList.size()];
        arrayList.toArray(result);
         return  result;
    }
скажем передавать этому методу arrayList со списком факультетов
...
Рейтинг: 0 / 0
JSF и ComboBox
    #33999435
Sah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил, а ты не сталкивался с тем, что в Tomcat в комбобоксах не отображаются русские буквы "с" и "я"?
...
Рейтинг: 0 / 0
JSF и ComboBox
    #33999504
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вроде не обращал внимания. Значит наверное и не было. Попробуй в качестве теста заполнять список не из БД, а ручками.
...
Рейтинг: 0 / 0
JSF и ComboBox
    #33999784
java_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю, у меня все нормально работает, вот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  public  SelectItem[] getAllFacultet() { 
     if  (allFacultet ==  null ) {
      allFacultet =  new  SelectItem[ 2 ];
      allFacultet[ 0 ] =  new  SelectItem();
      allFacultet[ 1 ] =  new  SelectItem();
      
      allFacultet[ 0 ].setValue("Я");
      allFacultet[ 0 ].setLabel("я");
      allFacultet[ 0 ].setDescription("Я");

      allFacultet[ 1 ].setValue("с");
      allFacultet[ 1 ].setLabel("с");
      allFacultet[ 1 ].setDescription("с");      
  
    }
     return  allFacultet;
  }


Михаил, у меня стоит jdk1.4 и поэтому отсутствует поддержка универсальных типов, не могли бы вы подправить мой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public  SelectItem[] getAllFacultet() { 
     if  (allFacultet ==  null ) {
      allFacultet =  new  SelectItem[facs.size()];
       for  ( int  i =  0 ; i < facs.size(); i++) {
        allFacultet[i] =  new  SelectItem();
      }
      
      facs.toArray(allFacultet); // Здесь порождается исключение    
    }
     return  allFacultet;
  }

За ранее спасибо
...
Рейтинг: 0 / 0
JSF и ComboBox
    #33999836
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чего-то я торможу, а почему бы не
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   public  SelectItem[] getAllFacultet() { 
       if  (allFacultet ==  null ) {
          allFacultet =  new  SelectItem[facs.size()];
      }
      facs.toArray(allFacultet);
       return  allFacultet;
  }
...
Рейтинг: 0 / 0
JSF и ComboBox
    #34000257
java_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да можно :)
у меня был Exception и я не закоментил те строки

Вообщем вываливается такой Exception:
Код: plaintext
1.
2.
javax.servlet.ServletException: javax.servlet.jsp.JspException: 
javax.faces.el.EvaluationException: Error getting property 'allFacultet' from bean of type studentproject.StudentsHandler: java.lang.ArrayStoreException
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF и ComboBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]