Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 21.09.2018
Сообщений: 12

Неверно выводит таблицы с данными

25.11.2018, 10:09. Показов 1531. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой, есть база данных с заказами пользователей. Есть метод, который согласно User id вытягивает заказы именно этого юзера. В юнитестах слой ДАО, Сервиса протестирован и все работает.

НО на стороне клиента при обновлении данные изменяются. Т.е, предположим юзер добавил 4 разных товара, потом 1 удалил. Обновляется страница и удаление не произошло, повторно обновляет бац и 3 товара, еще раз и опять 4.

На стороне сервера в базе все отображается корректно. Но на ЮИ проблема. При запуске Дебаггера все работает корректно. В чем проблема, понять не могу. Буду очень признателен за помощь, т.к. время подпирает конкретно....

Собственно код ЮИ:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<table>
    <tr>
        <th></th>
        <th><ftm:message bundle="${i18n}" key="ord.id"/></th>
        <th>Parts id</th>
        <th>Quantity</th>
        <th>Total sum</th>
        <th><ftm:message bundle="${i18n}" key="ord.delete"/></th>
    </tr>
    <c:forEach var="ord" items="${orders}" varStatus="status">
    <tr>
        <td>${status.index + 1}</td>
        <td>${ord.id}</td>
        <td>${ord.parts_id}</td>
        <td>${ord.quantity}</td>
        <td>${ord.total}</td>
        <td><form action="frontController?command=deleteord" method="post">
            <button value="${ord.id}" name="deleteOrd" class="btn">Delete</button>
        </form></td>
    </tr>
    </c:forEach>
</table>
Контроллер вывода:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class OrderController implements Controller {
    private OrdService ordService = OrdServiceIpl.getInstance();
 
    @Override
    public void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        User user = (User)req.getSession().getAttribute("user");
        List<Ord> orders = ordService.getByUserId(user.getId());
 
        req.setAttribute("orders", orders);
        RequestDispatcher dispatcher = req.getRequestDispatcher(MAIN_PAGE);
        dispatcher.forward(req, resp);
    }
}
Контроллер удаления:

Java
1
2
3
4
5
6
7
8
9
10
11
12
public class DeleteOrdController implements Controller {
    private OrdService ordService = OrdServiceIpl.getInstance();
 
    @Override
    public void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        String id = req.getParameter("deleteOrd");
        long ord_id = Long.parseLong(id);
        ordService.delete(ord_id);
        String contextPath = req.getContextPath();
        resp.sendRedirect(contextPath + "/frontController?command=orders");
    }
}
Сервисный слой:

Java
1
2
3
4
5
6
7
8
 @Override
    public int delete(Serializable id) {
        try {
            return ordDao.delete(id);
        } catch (SQLException e) {
            throw new SecurityException("Ошибка удаления Ord по id " + id);
        }
    }
Сервисный:

Java
1
2
3
4
5
6
7
8
9
    @Override
public List<Ord> getByUserId(long userId) {
    try {
        return ordDao.getByUserId(userId);
    } catch (SQLException e) {
        rollback();
        throw new SecurityException("Ошибка получения заказов по userId" + userId);
    }
}
ДАО:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public List<Ord> getByUserId(long user_id) throws SQLException {
        psGetByUserId = preparedStatement(getByUserId);
        psGetByUserId.setLong(1, user_id);
        psGetByUserId.execute();
        ResultSet rs = psGetByUserId.getResultSet();
        List<Ord> list = new ArrayList<>();
        while (rs.next()) {
            list.add(populateOrd(rs));
        }
        close(rs);
 
        return list;
    }
 
public int delete(Serializable id) throws SQLException {
            psDelete = preparedStatement(deleteOrdQuery);
            psDelete.setLong(1, (long) id);
            return psDelete.executeUpdate();
    }
Подозрений нет... HELP
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2018, 10:09
Ответы с готовыми решениями:

Неверно выводит данные в виде таблицы
По заданию необходимо ввести число n и столько же раз вывести на экран значение логарифма этого числа. Представляю код ниже. По логике...

Выводит неверно символ
Программа показывает число, месяц, день недели. Но почему-то неверно показывает 2 символ числа(вместо 14, 1№). И еще вопрос, как сделать...

Неверно выводит вектор пар
Здравствуйте. Цикл выводит нули вместо ожидаемых чисел. В чем же ошибка #include&lt;iostream&gt; #include&lt;vector&gt;

34
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
26.11.2018, 11:00
Как вариант, возможно браузер кэширует страницу
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 10:46
Цитата Сообщение от AYuraga Посмотреть сообщение
frontController?command=deleteord
а можно имплементацию глянуть?

Добавлено через 2 часа 59 минут
а все понял..файлов много не сразу разобрался без подписей где какой

Добавлено через 11 часов 1 минуту
возможно ошибаюсь но мне кажется это происходит потому,что эта кнопка перегружает страницу с други параметром и при перезагрузке происходит не то,что вы задумали тоесть перегрузив страницу происходит повторное нажатие кнопки,может стоит вынести функционал из юи.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
28.11.2018, 13:53
Цитата Сообщение от DimaxDe Посмотреть сообщение
может стоит вынести функционал из юи.
какой например?
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 14:13
Цитата Сообщение от xoraxax Посмотреть сообщение
какой например?
вы хотите сказать его нет в юи?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
28.11.2018, 14:48
Цитата Сообщение от DimaxDe Посмотреть сообщение
вы хотите сказать
я хочу спросить
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 14:58
Вы более опытный ,как я вижу и потому распределение сказать-спросить в нашем случае не совсем корректно,но я сам учусь и потому рискну предположить ,что рекурсия frontController?command=deleteord? предпологает с одной стороны перезагрузку страницы с другими параметрами,а с другой стороны изменение данных в зависимости от этих параметров ,что и является функционалом.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
28.11.2018, 15:13
чот ты мне мозг вынес, причем тут рекурсия и что конкретно ты хочешь вынести и куда?
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 15:43
<form action="frontController?-
Recursion is the process a procedure goes through when one of the steps of the procedure involves invoking the procedure itself.

Добавлено через 8 минут
интересно ,что зачит обновить..нажать на кнопку или в браузере обновить страницу с этими параметрами frontController?command=deleteord что по сути одно и тоже.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
28.11.2018, 15:48
DimaxDe, перечитал несколько раз. Рекурсия, обновить, нажать на кнопку - Вы о чем вообще?
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 16:04
или есть на странице кнопка обновить которая сбрасывает command=deleteord,?

Добавлено через 1 минуту
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Вы о чем вообще?
автор пишет ,что
Цитата Сообщение от AYuraga Посмотреть сообщение
Обновляется страница и удаление не произошло, повторно обновляет бац и 3 товара,
Добавлено через 14 минут

Не по теме:

JIeIIIa, попкорн есь ещё?

0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
28.11.2018, 16:11
Цитата Сообщение от DimaxDe Посмотреть сообщение
автор пишет ,что
Я понял что автор пишет. Вы что имели ввиду говоря о рекурсии и т.п.?

Добавлено через 22 секунды

Не по теме:

Цитата Сообщение от DimaxDe Посмотреть сообщение
попкорн есь ещё?
Нет. Принесете?

0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 16:18
Цитата Сообщение от JIeIIIa Посмотреть сообщение
что имели ввиду говоря о рекурсии
рекурсия это когда методы функции вызывают эту же функцию,что посути тут и происходит.А в общем я думаю ,что автор обновляя страницу с теми параметрами ,что на кнопке ,возможно и имитирует нажатие этой кнопки.Хотя если при обновлении происходил сброс параметров ,тогда прошу прощения за то,что я вам мозги парю со сваими мыслями в буквы.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
28.11.2018, 16:21
DimaxDe, Вы уверены, что понимаете как работает post-запрос? Если нет, то стоило бы почитать что при этом происходит.
Цитата Сообщение от DimaxDe Посмотреть сообщение
методы функции вызывают эту же функцию
Методы функции? Где Вы такое услышали?
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 16:38
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Методы функции?
in English process a procedure
in Deutsch Methode einer Funktion
по русски скорее всего свойства функции..незнаю точно..не подскажете?

Добавлено через 9 минут
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Вы уверены, что понимаете как работает post-запрос?
при нажатии кнопки клиентом отсылается хттп протокол с реквестом сервак анализирует этот протокол и отсылает респонс где и формируется страница с задаными параметрами(думаю в целом правильно..если нет буду благодарен за поправку)
Цитата Сообщение от JIeIIIa Посмотреть сообщение
стоило бы почитать что при этом происходит.
по английски читал,по немецки читал,по русски не читал..хм..интересно..обещаю что почитаю.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
28.11.2018, 16:39
Цитата Сообщение от DimaxDe Посмотреть сообщение
process a procedure
В контексте, пожалуйста

Recursion in java is a process in which a method calls itself continuously. A method in java that calls itself is called recursive method. (link)
In Java, the function-call mechanism supports the possibility of having a method call itself. This functionality is known as recursion. (link)
0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
28.11.2018, 16:44
отсылается хттп протокол
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 16:48
«протокол передачи гипертекста» протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов в формате «HTML»

Добавлено через 1 минуту
0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
28.11.2018, 16:49
Цитата Сообщение от DimaxDe Посмотреть сообщение
«протокол передачи гипертекста» протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов в формате «HTML»
это понятно) я про то, что "отправить протокол" - это сильно. Отправляется же запрос)
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
28.11.2018, 16:54
Цитата Сообщение от NiceJacket Посмотреть сообщение
Отправляется же запрос)
в каком виде если не в виде хттп
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2018, 16:54
Помогаю со студенческими работами здесь

Код неверно выводит массивы
всем привет. в общем у меня такая проблема: установил Visual Studio 2013, начал на нем познавать язык С++, и тут такая проблема, когда я...

Быстрая сортировка выводит неверно
Всем привет. Вообщем вот мой код, он должен быть правильным, но почему-то я хватаю где-то мусор при выводе // chrome_test.cpp : Defines...

Копировать таблицу с данными, перенос таблицы из одной БД в другую (также с данными)
Доброе времени суток всем! Помогите разобраться, как скопировать таблицу вместе с данными в PL/SQL Developer. Есть функция Дублировать...

Метод ранга. Неверно выводит результат
Добрый день, уважаемые форумчане! Столкнулся с такой проблемой. Есть задача, вот её условия: Группе экспертов необходимо определить...

Симплекс метод. Неверно выводит ответ
Доброго времени суток. Есть программа, считает правильно, но ответ показывает как-то косячно. Т.е., значения верные, но добавляет лишние...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru