2 / 2 / 2
Регистрация: 01.04.2012
Сообщений: 110

Как правильно отделить логику от вида

25.12.2012, 22:06. Показов 1572. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблица в БД состоящая из четырех столбцов н.п.

ID SURNAME NAME PHONE
1 Петров Петя 1111
2 Иванов Вова 2222

Данные этой таблицы надо вывести в JSP странице, в таком виде:

1 Петров
Петя
1111

2 Иванов
Иван
2222

Я решил это так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public List shou(Connection con) {
        Connection conect = null;
        List message=new LinkedList();
        try {
            conect = con;
            PreparedStatement st=conect.prepareStatement("select * from.......");
            ResultSet rs=st.executeQuery();
            while(rs.next())
            {
                // Таким образом решил добиться нужного результата
                message.add(rs.getString(1)+"&nbsp;"+rs.getString(2)+"<BR>"+rs.getString(3)+"<BR>"+rs.getString(4));
            }
 
        } catch (SQLException e) {
            log.info("Ошибка!");
        }
        return message;
    }
А вывожу так:

Java
1
2
3
4
    list = m.shou(conect);
    for(int j=0; j<list.size(); j++){
        out.println(list.get(j).toString());
        }
Но так не подходит надо все теги (&nbsp; <BR>) перенести в слоя представления (JSP)!!!

В голову пришло только такое:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public List shouID(Connection con) {
        Connection conect = null;
        List message=new LinkedList();
        try {
            conect = con;
            PreparedStatement st=conect.prepareStatement("select * from.......");
            ResultSet rs=st.executeQuery();
            while(rs.next())
            {
                // ID
                message.add(rs.getString(1));
            }
 
        } catch (SQLException e) {
            log.info("Ошибка!");
        }
        return message;
    }
И таких методов в данном случае будет 4 то есть (shouID, shouSURNAME, shouNAME, shouPHONE), каждый будет хранить только свой данные.

В JSP тогда как то так (то есть видом буду управлять только здесь в JSP)
Java
1
2
3
4
5
    listID = m.shouID(conect);
        listSURNAME = m.shouSURNAME(conect);
    for(int j=0; j<list.size(); j++){
        out.println(listID.get(j).toString()+"&nbsp;"+listSURNAME .get(j).toString());
        }
Но вдруг таблица будет состоять из множества столбцов н.п. 15, мне что тогда 15 почти одинаковых методов делать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2012, 22:06
Ответы с готовыми решениями:

Инкапсуляция или как правильно отделить логику
Делаю проект в WPF(но это не важно). Вопрос таков: может ли класс где обработчики всех событий формы, иметь переменную(другой класс, в...

Как отделить бизнес логику от UI ?
У меня бизнес логика перемешена с UI. Как отделить бизнес логику в отдельный класс, экземпляр которого может генерировать значения больше и...

Как правильно отделить пакет библиотеки от тестов?
Поделитесь, пожалуйста, опытом: кто как организует проект с тестами? Пока пишу тесты прямо в коде и запускаю их из main. Но скоро...

1
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
27.12.2012, 13:45
Простейшее решение: метод запрашивает из БД данные и возвращает список объектов. Этот список объектов обрабатывается в самой jsp. Каждый объект содержит все нужные поля. А какие поля выводить, решает jsp.

Общая архитектура обычно сложнее: создаётся слой объектов доступа к данным (DAO), отвечающих за взаимодействие с БД; создаётся слой UI (не важно, какой: консоль, окна, web, м.б. web-сервис... - у Вас Web-интерфейс на основе jsp); между ними - слой объектов бизнес-логики. Это в двух словах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2012, 13:45
Помогаю со студенческими работами здесь

Как правильно переписать логику OnInput?
Здравствуйте. Есть логика в OnInput, нужно оставить первый INPUT и вместо оставшиеся двух инпутов выводить значения которые считаются в...

Как правильно реализовать логику программы?
Здравствуйте! Хочу реализовать такую логику программы: телефон - стартовая активность А -&gt; активность Б и т. д.; планшет: стартовая...

Symfony 2: как правильно организовать бизнес-логику?
Всем привет! Вот я недавно начал один проект на Symfony 2 и сразу же столкнулся одной проблемой - организацией бизнес-логики. Например, у...

Как правильно составить логику приложения (игра)?
Народ, выручайте советом! Я снова застрял на очередной задаче... Вот текст: Я застрял на этапе структурирования приложения....

Игра "Лабиринт". Отделить логику от интерфейса
Привет всем, извините за возможно глупый вопрос, но что значит отделить логику от интерфейса. Пишу игру лабиринт, компьютер должен найти...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 20.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 17.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru