Динамические ссылки на JSP
Ситуация такая: я хочу сделать сайт, на котором будет страница администратора( к примеру admin.jsp) ну и пусть страница index.jsp. На этой странице будут лежать ссылки по категориям(например "Java","C#","C++" и т.д.) после клика на каждую ссылку я перехожу на соответствующую страницу. Пусть админ захотел добавить ссылку "Pascal". Внимание вопрос: как это сделать без перекомпиляции всего сайта, т.е. динамически? Заранее благодарен.
Все CMS хранят ссылки меню в базе данных.
Я этого не понимаю. Ясно, что СМС должны так работать вот только я не одну СМС на JSP не знаю. И как сделать тоже не знаю вот и прошу помощи.
А тогда в jsp страничке будешь писать что-нибудь вроде:
Код:
<a href="${URL из БД}">${название из БД}</a>
А как работать с бд - это уже другой топик ;)
Я просто думаю, как будут обновляться ссылки: пусть в базе храняться, я при разработке прогнал цикл по всем запися и вывел их, а когда сайт запуститься, внеся изменения, колличество записей измениться, а .jsp не перекомпилится же, т.е. ничего не поменяется. А может я и неправ. Покажите кусок кода как это сделать, если можно так будет понятнее.
Цитата: freestyler
Я просто думаю, как будут обновляться ссылки: пусть в базе храняться, я при разработке прогнал цикл по всем запися и вывел их, а когда сайт запуститься, внеся изменения, колличество записей измениться, а .jsp не перекомпилится же, т.е. ничего не поменяется.
JSP компилируется каждый раз, когда страница запрашивается браузером. Что мешает Вам после внесения изменений просто программно обновить страницу (я так думаю что изменения в базу данных Вы будете вносить с помощью jsp или сервлета). Конечно это потребует перезагрузки страницы, но и не каждый же день Вы вносите изменения в структуру сайта.
P.S. Я Java не так давно занимаюсь, так что если ошибаюсь - поправьте.
Цитата:
Hrew:
JSP компилируется каждый раз, когда страница запрашивается браузером.
Бред чистой воды. В спецификации сказано, что jsp компилится при первом обращении и становится сервлетом.
Цитата:
Покажите кусок кода как это сделать, если можно так будет понятнее.
Показываю неправильно, т.к. использовать скриплеты считается дурным тоном. Но, тебе важно понимание идеи:
Код:
List<MenuLink> links = getMenuLinksFromDb();// получаем все имеющиеся в таблице ссылки
for(MenuLink menuLink: links){
out.println("<a href='"+menuLink.getURL()+"'>"+menuLink.getName()+"</a>");
}
for(MenuLink menuLink: links){
out.println("<a href='"+menuLink.getURL()+"'>"+menuLink.getName()+"</a>");
}
пасибо.