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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постраничный вывод 
:(
    Опции темы
webmaster35
Дата 2.1.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как организовать средствами JST и/или JSTL постраничный вывод из базы ? Нигде ничего найти не смог
PM MAIL   Вверх
garbuz
Дата 2.1.2010, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что имеется ввиду? Pagination? Погуглите на этот счет.
PM MAIL   Вверх
webmaster35
Дата 3.1.2010, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(garbuz @ 2.1.2010,  22:20)
Что имеется ввиду? Pagination? Погуглите на этот счет.

Да пагинация. Я гуглил немало, но ничего толкового не смог найти
PM MAIL   Вверх
garbuz
Дата 3.1.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Все что Вам надо, так это делать запросы к базе с Limit, ну это в самом простом случае. Если используете Hibernate, то используйте Criteria, там есть методы, указывающие с чего начинать выборку и максимальное число выбираемых элементов, выбирайте информацию в зависимости от номера страницы.
PM MAIL   Вверх
webmaster35
Дата 3.1.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(garbuz @ 3.1.2010,  16:18)
Все что Вам надо, так это делать запросы к базе с Limit, ну это в самом простом случае. Если используете Hibernate, то используйте Criteria, там есть методы, указывающие с чего начинать выборку и максимальное число выбираемых элементов, выбирайте информацию в зависимости от номера страницы.

Ну смотри, выводить например при помощи Limit 20 последних записей из базы. А дальше что , как из этого страницы то сделать *
PM MAIL   Вверх
garbuz
Дата 3.1.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(webmaster35 @  3.1.2010,  16:38 Найти цитируемый пост)
Ну смотри, выводить например при помощи Limit 20 последних записей из базы. А дальше что , как из этого страницы то сделать * 


1)Получаешь количество записей - пусть оно будет равно 200.

2)Определяешь количество записей на одной странице - пусть будет равно 10.

3)Высчитываешь количество страниц 200/10 = 20 страниц.

4)Первый раз на страницу вытаскиваешь первые 10 записей.

5)Рисуешь ссылки, которые буду отвечать за пэйджинг, содержащие в себе номер страницы.
Код

<a href="/page2">Туда</a>


6)При переходе на данную ссылку в контроллере получаешь текущий номер страницы, выбираешь необходимые данные.

7)Показываешь данные на странице, если надо обновляешь ссылки.

Код

<a href="/page1">Сюда</a>
<a href="/page3">Туда</a>


8)Profit!
PM MAIL   Вверх
MaxPayneC
Дата 3.1.2010, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

Query q = hb_session.createSQLQuery("magic query text");
int magic_number = 30;
int page_number = 3;
q.setMaxResults(30);
q.setFirstResult(page_number * magic_number);

//execute, fetch, etc



Это сообщение отредактировал(а) MaxPayneC - 3.1.2010, 20:53
PM   Вверх
webmaster35
Дата 3.1.2010, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(garbuz @ 3.1.2010,  17:29)
Цитата(webmaster35 @  3.1.2010,  16:38 Найти цитируемый пост)
Ну смотри, выводить например при помощи Limit 20 последних записей из базы. А дальше что , как из этого страницы то сделать * 


1)Получаешь количество записей - пусть оно будет равно 200.

2)Определяешь количество записей на одной странице - пусть будет равно 10.

3)Высчитываешь количество страниц 200/10 = 20 страниц.

4)Первый раз на страницу вытаскиваешь первые 10 записей.

5)Рисуешь ссылки, которые буду отвечать за пэйджинг, содержащие в себе номер страницы.
Код

<a href="/page2">Туда</a>


6)При переходе на данную ссылку в контроллере получаешь текущий номер страницы, выбираешь необходимые данные.

7)Показываешь данные на странице, если надо обновляешь ссылки.

Код

<a href="/page1">Сюда</a>
<a href="/page3">Туда</a>


8)Profit!

Можешь с кодом подсказать ? Просто я новичок еще... Вот что у меня сейчас к примеру .Как это на страницы разбить ?


Код
     <%--
    Document   : Polls
    Created on : 29.12.2009, 14:31:12
    Author     : psixopad
--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <center>

        <sql:setDataSource
            var="dataSource"
            driver="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/news"
            user="root"
            password="12191992"
            scope="session" />

        <sql:query var="news" dataSource="${dataSource}" >
              select * from news, category
              where news.id = category.id
              order by -news.id desc limit 5              
        </sql:query>

             <c:forEach items="${news.rows}" var="row">
                 

                 <h2> <br> <c:out value="${row.title}" /> </h2>
                 <h2> <br> <c:out value="${row.content}" /> </h2>
                 <h2> <br> <c:out value="${row.datetime}" /> </h2>


            </c:forEach>
              
        </center>

    </body>
</html>



PM MAIL   Вверх
garbuz
Дата 3.1.2010, 21:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(webmaster35 @  3.1.2010,  21:32 Найти цитируемый пост)
Можешь с кодом подсказать ? Просто я новичок еще... Вот что у меня сейчас к примеру .Как это на страницы разбить ?

Ооо, брат, тут надо хотя бы в сторону сервлетов и jdbc посмотреть, на голых jsp далеко не уедешь. Спринг и хибернейт со временем.
Читай, учись, задавай вопросы. 
PM MAIL   Вверх
webmaster35
Дата 4.1.2010, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(garbuz @ 3.1.2010,  21:42)
Цитата(webmaster35 @  3.1.2010,  21:32 Найти цитируемый пост)
Можешь с кодом подсказать ? Просто я новичок еще... Вот что у меня сейчас к примеру .Как это на страницы разбить ?

Ооо, брат, тут надо хотя бы в сторону сервлетов и jdbc посмотреть, на голых jsp далеко не уедешь. Спринг и хибернейт со временем.
Читай, учись, задавай вопросы. 

Ну с сервлетами и JDBC я работал,  просто потом открыл JSTL для себя. Тут ведь проще гораздо, и кода меньше писать на порядок надо. И зачем вообще сервлеты нужны ? Можешь поподробнее ? А то я совсем запутался )

Это сообщение отредактировал(а) webmaster35 - 4.1.2010, 08:16
PM MAIL   Вверх
garbuz
Дата 4.1.2010, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Почитай про шаблон MVC. Твои бины\ентити - это модель, страницы - это вью, сервелет - контроллер. Данный шаблон конечно не панацея, но он довольно себя хорошо зарекомендовал.

PM MAIL   Вверх
webmaster35
Дата 4.1.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(garbuz @ 4.1.2010,  22:12)
Почитай про шаблон MVC. Твои бины\ентити - это модель, страницы - это вью, сервелет - контроллер. Данный шаблон конечно не панацея, но он довольно себя хорошо зарекомендовал.

Про MVC я немного читал и прочел еще раз. А почему скажем нельзя так, JSTL - модели и вывод, вьюхи , сервлеты - контроллеры ? Просто с биансами значительно менее удобно работать чем с JSTL . И как все таки все это применить в моем случае ?  
PM MAIL   Вверх
garbuz
Дата 4.1.2010, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(webmaster35 @  4.1.2010,  22:29 Найти цитируемый пост)
Про MVC я немного читал и прочел еще раз. А почему скажем нельзя так, JSTL - модели и вывод, вьюхи , сервлеты - контроллеры ? Просто с биансами значительно менее удобно работать чем с JSTL . И как все таки все это применить в моем случае ?   

В вашем случае будет лучше всю логику выносить в сервлет, логику работы с бд - в дао-класс, вывод данных - jstl.
PM MAIL   Вверх
webmaster35
Дата 5.1.2010, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(garbuz @ 4.1.2010,  22:39)
Цитата(webmaster35 @  4.1.2010,  22:29 Найти цитируемый пост)
Про MVC я немного читал и прочел еще раз. А почему скажем нельзя так, JSTL - модели и вывод, вьюхи , сервлеты - контроллеры ? Просто с биансами значительно менее удобно работать чем с JSTL . И как все таки все это применить в моем случае ?   

В вашем случае будет лучше всю логику выносить в сервлет, логику работы с бд - в дао-класс, вывод данных - jstl.

Хм интересно , что за ДАО. Никогда не видел
PM MAIL   Вверх
Nofate
Дата 5.1.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Про DAO - хотя бы здесь.
По сути - класс, который объединяет методы, выдергивающие данные из базы.


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0589 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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