2013-07-02 3 views
1

Я новичок в jsp и javaEE и пытаюсь сделать следующее: Я делаю поиск по базе данных и нахожу все учетные записи пользователя. Затем я хочу их перечислить, в asp.net gridview - очень полезный инструмент для этого, мы можем добавить флажки, кнопки и т. Д. В gridview для всех строк и добавить к этим строкам определенные события. Каков способ сделать это в java? Должен ли я установить расширение? Вот мой код:Как отобразить результаты поиска в виде списка на странице jsp?

try { 
     connect(); 
     PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
     "SELECT * FROM Accounts where username = ?"); 
     checkDB.setString(1,username); 
     ResultSet rs =null; 
     rs=(ResultSet) checkDB.executeQuery(); 

     if(rs.next()) 
     { 

      //LIST THE RESULTS AS A GRIDVIEW HERE 
      rs.close(); 
      return true; 
     } 
     else 
     { 
      rs.close(); 
      System.out.println("awwwwww"); 
      return false; 
     } 
    } catch (Exception e) { 
     System.out.println("cannot connect"); 
     e.printStackTrace(); 
     return false; 
    } 

Вот скриншот того, что такие вещи я хочу:

enter image description here

+0

И что вы пробовали до сих пор? – Andremoniy

+0

@StefanBeike Что вы имеете в виду? –

+0

Я видел пример здесь http://www.codeproject.com/Articles/7813/Data-Grid-for-JSP, но тег не работает, нет такого тега в моем затмении, поэтому я задаюсь вопросом, должен ли я установить расширение для сетки или есть встроенный стандартный? –

ответ

1

сервлет может отправить JSP для отображения результатов после того, как вы сохраните данные, которые вы хотите для отображения в сеанс или объект запроса.

Вы можете получить похожий вид с библиотекой тегов displaytag. Например, приведенный ниже код был использован для генерации http://nciml.mathteamhosting.com/generated/topStudents.htm

<%-- At top of page --%> 
    <%@taglib prefix="display" uri="http://displaytag.sf.net" %> 

    <display:table id="row" name="rankedList" > 
    <display:column property="rank" title="Rank" /> 
    <display:column property="firstName" title="First" /> 
    <display:column property="lastName" title="Last" /> 
    <display:column property="mySchool" title="School" /> 
    <display:column property="c1" title="C1" /> 
    <display:column property="c2" title="C2" /> 
    <display:column property="c3" title="C3" /> 
    <display:column property="c4" title="C4" /> 
    <display:column property="c5" title="C5" /> 
    <display:column property="cTotal" title="Total Points" /> 
</display:table> 

В приведенном выше коде, rankedList является ArrayList из RankedStudent, который является POJO с свойствами, перечисленными. У вас должны быть публичные геттеры и сеттеры для каждого свойства, которое вы хотите использовать с displayTag.

+0

. Спасибо, но uri = "http://displaytag.sf.net" дает ошибку, о которой говорит, не найден –

+0

Вам нужно включить файл jar в свой проект. Загрузите и распакуйте его и сохраните в папке lib вашего проекта, если вы не используете maven. http://sourceforge.net/projects/displaytag/files/ – Thorn

0

Вы можете использовать табличный тег html, чтобы отобразить результат, который вы указали на снимке экрана.

<table> <tr><th>heading</th><th>heading</th><th></th><th></th><th></th><th></th><th></th></tr><tr> 

if(rs.next()) 
    { 
      <tr> 
       <td>data</td><td></td><td></td><td></td><td></td><td></td><td></td> 
      </tr> 



    } 

rs.close();

0
ResultSet rs = null; 
    ArrayList aListOfBeans; 
    try { 
     connect(); 
     PreparedStatement checkDB = (PreparedStatement) con 
       .prepareStatement("SELECT * FROM Accounts where username = ?"); 
     checkDB.setString(1, username); 
     rs = (ResultSet) checkDB.executeQuery(); 

     while (rs.next()) { 
      if (aListOfBeans == null) 
       aListOfBeans = new ArrayList(); 
      // LIST THE RESULTS AS A GRIDVIEW HERE 
      String crn = rs.getString("CRN"); 
      String courseCode = rs.getString("COURSE_CODE"); 
      // etc etc etc (for all the columns) 

      MyAccountBean aBean = new MyAccountBean(); 
      aBean.setCRN(crn); 
      aBean.setCourseCode(courseCode); 
      // etc etc etc 

      aListOfBeans.add(aBean); 
     } 

     if (aListOfBeans == null) { 
      System.out.println("awwwwww"); 
     } 
    } catch (Exception e) { 
     System.out.println("cannot connect"); 
     e.printStackTrace(); 
     return false; 
    } finally { 
     if (rs != null) 
      rs.close(); 
     // closing rs, con, checkDB in finally block *ensures* they get 
     // closed even if Exception is caught 
     // i didn't write for the others, but you get the idea 
    } 
    return aListOfBeans; 

В идеале вышеуказанный код должен быть в вашем сервлете Java, а не на вашей странице JSP. Ваш JSP должен показывать только данные, а не делать подключения к БД или извлекать их из БД.

Позже в вашем JSP, получите ArrayList aListOfBeans из сеанса и используйте методы getter для bean-компонентов (aBean.getCRN()), чтобы получить данные. Используйте цикл for на ArrayList для динамического создания таблицы.

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