Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSF и БД 
:(
    Опции темы
Sherst
Дата 7.9.2006, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 26.10.2005

Репутация: 2
Всего: 2



Привет всем!
Не могу понять как правильно вывести записи бд используя jsf.

Допустим есть таблица 
Код

       ID       StudentName


Создал такие классы

Код

package studentstore;

import java.sql.*;
import java.util.List;
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;
import oracle.jdbc.driver.*;

public class DBAccess {

  protected synchronized Connection getConnection() throws Exception {
    String driverClassName = "jdbc.oracle.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@localhost:1521:SHERST";
    String password = "TIGER";
    String user = "SCOTT";
    Class.forName(driverClassName);
    Connection con = DriverManager.getConnection(url, user, password);
    return con;
  }


  public StudentInfo[] getAllStudent() throws Exception {
    StudentInfo[] students = null;
    Connection con = null;
    try {
      String selectStatement = "select * from \"StudentsStore\" ";
      con = getConnection();
      PreparedStatement prepStmt = con.prepareStatement(selectStatement);
      ResultSet rs = prepStmt.executeQuery();
      students = assembleStudentInfos(rs);
      prepStmt.close();
      con.close();
    }
    catch (Exception ex) {
      try {
        if (con != null && !con.isClosed()) {
          con.close();
        }
        throw new Exception("Error executing query : " + ex.getMessage());
      }
      catch (SQLException ex1) {
        throw new Exception("Could not close connection : " + ex1.getMessage());
      }
    }
    return students;
  }

  //*****************************************************************************************//
  private StudentInfo[] assembleStudentInfos(ResultSet rs) throws Exception{

    StudentInfo st1 = new StudentInfo();
    List lst = new ArrayList();

    if (rs != null) {
      while (rs.next()) {
        st1.setId(new Integer(rs.getInt("ID")));
        st1.setName(new String(rs.getString("Name")));

        lst.add(st1);
      }
    }

    StudentInfo[] st2 = new StudentInfo[lst.size()];
    return (StudentInfo[])lst.toArray(st2);
  }


}





Код

package studentstore;

public class StudentInfo {

  private Integer id;
  private String name;

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }


}





Код

package studentstore;

import java.util.*;
import javax.faces.model.*;
import javax.faces.context.*;
import javax.faces.application.*;
import javax.naming.*;


public class StudentsHran {
  DataModel studentModel;
  DBAccess stAccess;
  List students;
  Integer studentsCount;

  public StudentsHran() {
    init();
  }

  public void init() {
    try {
      stAccess = new DBAccess();
      students = new ArrayList();
      studentsCount = new Integer(0);
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }


  public void setStudentModel(DataModel studentModel) {
    this.studentModel = studentModel;
  }

  public DataModel getStudentModel() {
    if (studentModel == null) {
      studentModel = new ListDataModel();
    }
    studentModel.setWrappedData(students);

    return studentModel;
  }


  public String select() {
    try {
      StudentInfo[] data;
      data = stAccess.getAllStudent();

      if (data != null) {
        for (int i = 0; i < data.length; i++) {
          students.add(data);
        }
      }
      studentsCount = new Integer(students.size());

    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    return "selectSt";
  }


}


файл faces-config.xml
Код

<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  
  <navigation-rule>    
    <from-view-id>/index.jsp</from-view-id>    
    <navigation-case>        
      <from-outcome>selectSt</from-outcome>      
      <to-view-id>/index.jsp</to-view-id>    
    </navigation-case>
  </navigation-rule>

  
  <managed-bean>
    <managed-bean-name>reportHandler</managed-bean-name>
    <managed-bean-class>studentstore.StudentsHran</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

  <managed-bean>
    <managed-bean-name>report</managed-bean-name>
    <managed-bean-class>studentstore.StudentInfo</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

</faces-config>


И недоделанный файл index.jsp

Код

<%@ page contentType="text/html; charset=windows-1251" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>


<html>
  <head></head>
  <body>
    <f:view>
      <h:form>
        <h:dataTable value="#{reportHandler.studentModel}" var="reports">
          
          <h:column> 
            <f:facet name="header">
              <h:outputText value="StudentID">
              </h:outputText>
            </f:facet>            
          </h:column>

          <h:column> 
            <f:facet name="header">
              <h:outputText value="StudentName">
              </h:outputText>
            </f:facet>            
          </h:column>
          
          
        </h:dataTable>
      </h:form>
    </f:view>
  </body>
</html>


Как эти классы связать между собой не представляю. smile
PM MAIL   Вверх
JDuke
Дата 12.9.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Эти классы , как я понимаю уже связаны между собой с помощью faces-config.xml
единственное что надо сделать это вызвать select метод в StudentsHran (для простоты например в конструкторе после init);
и дописать jsp файло.
 
Код

<%@ page contentType="text/html; charset=windows-1251" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
  <head></head>
  <body>
    <f:view>
      <h:form>
        <h:dataTable value="#{reportHandler.studentModel}" var="reports">
          
          <h:column> 
            <f:facet name="header">
              <h:outputText value="StudentID">
              </h:outputText>
            </f:facet>
           [color=red] <h:outputText value="#{reports.id}"/>[/color]
          </h:column>
          <h:column> 
            <f:facet name="header">
              <h:outputText value="StudentName">
              </h:outputText>
            </f:facet>
            [color=red]<h:outputText value="#{reports.name}"/> [/color]           
          </h:column>
        </h:dataTable>
      </h:form>
    </f:view>
  </body>
</html>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.