LINUX.ORG.RU

Собственный Движок на J2EE


0

0

Решил набросать собтсвенный дижек на J2EE, Данный подход решил реализовать следующим образом

MySQL
таблицы:
1) верхнее меню
2) боковое меню
3) статьи
.....
все таблицы переплетены по id, т.е. например NAME поля бокового меню == id в таблице статьи

пользователь по запросы методом GET передаёт №страницы, это запрос отлавливает SERVLET и производит выборку из БД следующим образом:
1) Собрать базовою страницу «менюшки кнопочки»
создать массив обхектов «страница» заполнить его данными из таблицы «верхнее меню»
List<GenPageMySQL> listPageObj = new ArrayList(); //Create link from
mySQLQueryObj.selectAllField(«up_menu»,listPageObj);//Build an array LIST objects
точно так же боковое, и все остальные элементы БАЗОВОГО каркаса страницы

т.е. СОБРАТЬ базовый макет страницы.

вытащить по уникальному ID инфу из таблицы СТАТЬИ которую запросил кликом пользователь.
создать объект СТАТЬИ

после чего отлючиться от MySQL

и передать все собранные «объекты/массивы объектов» в JSP

request.setAttribute(«upMenu»,listPageObj1);
request.setAttribute(«LeftMenu»,listPageObj2);
request.setAttribute(«Page»,PageObj);
RequestDispatcher Dispatcher = getServletContext().getRequestDispatcher(«/WEB-INF/jsp/index.jsp»);
Dispatcher.forward(request, response);
в самом же JSP с помощью jstl вывести всё подобным образом

<c:forEach items=«${upMenu}» var=«Object» >
<c:out value=«${Object.id}»> </c:out>
<c:out value=«${Object.theme}»> </c:out>
<c:out value=«${Object.page}»> </c:out>
</c:forEach>
предварительно обрамив его в CSS.

кто что скажет по поводу подобного подхода? делается ли этот как-то оптимальней или проще, или общего подхода нет?
людая критика только приветсвуется

З.Ы.
знаю что есть готовые движки и фреймоврки, просто произвожу разбор полётов для более глубого разумения происходящего.

Если честно, то ужасно почти все=)

selectAllField - никогда, никогда не генерируй UI по БД и наоборот. Так правильнее: List<UpMenuItem> = dbRepo.selectAllUpMenuItems(); Завязка на MySQL какбе намекает о нетестируемости. Use Hibernate, Luke! Тада можно будет цеплять HSQL и писать нормальные быстрые тесты на фикстурах. Писать на чистом JSP... Месье знает толк в извращениях! Ну да ладно, не сильно оно отличается. Не хватает нормального настраиваемого роутинга. Не забудь еще авторизацию. И еще, на будущее все таки вынести всю бизнес логику из сервлетов в отдельный слой. А тут ужу без IoC или EJB не обойтись. Кароче писать веб без фреймворков дурацкое, неблагадарное дело. Все равно сам рано или поздно реализуешь свой IoC и некую пародию на Acegi)

знаю что есть готовые движки и фреймоврки,

Готовые движки на жаве? Да лана)

dizza ★★★★★
()

Да, еще забыл. Видимо разделение меню на верхнее и боковое это лишне. Более общий случай - иерархический. Тогда записи с нулевой глубиной есть верхнее меню, остальные - боковое. Структура примерно такая (adjacency list) : id, parent_id, order, label (поле order позволяет задавать порядок пунктам)

dizza ★★★★★
()
Ответ на: комментарий от dizza

Мне кажется для иерархического меню лучше использовать nested sets.

AlexKiriukha ★★★★
()

>т.е. СОБРАТЬ базовый макет страницы.
посмотрите на тот же sitemesh как там делаются макеты-инклюды-декораторы

знаю что есть готовые движки и фреймоврки, просто произвожу разбор полётов для более глубого разумения происходящего.


ну так вот и посмотрите как в том же grails сделано...

thevery ★★★★
()

Во, вспомнил. Посморти на исходники JForum, он как раз написан почти на чистом Java EE

dizza ★★★★★
()
Ответ на: комментарий от Santad

ну не все же такие умные и примногоначитаные как вы о Великий Гуру

initmax
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.