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

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

25.12.2012, 22:06. Показов 1270. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2012, 22:06
Ответы с готовыми решениями:

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

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

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

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

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

Общая архитектура обычно сложнее: создаётся слой объектов доступа к данным (DAO), отвечающих за взаимодействие с БД; создаётся слой UI (не важно, какой: консоль, окна, web, м.б. web-сервис... - у Вас Web-интерфейс на основе jsp); между ними - слой объектов бизнес-логики. Это в двух словах.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2012, 13:45
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru