Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование одной JSP 
:(
    Опции темы
Sequd
Дата 4.5.2011, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.5.2011

Репутация: нет
Всего: нет



Вопрос такой, я решил использовать 1 страницу для всего проекта, но вставляя на нее нужные jsp
Код

<body id="body">
        <div id="header"><%@include file="view/jspf/header.jspf" %></div>
        <div id="content"><%@include file="view/jspf/content.jspf" %></div>

Как мне возвращать всю нужную информацию в content.jspf ??? 
точнее я хочу в этот файл вставлять другие страницы, например login.jsp, cart.jsp, additem.jsp и так далее
как должен выглядеть сервелт??? помогите пожалуйста, не могу разобраться
PM MAIL   Вверх
Sequd
Дата 5.5.2011, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.5.2011

Репутация: нет
Всего: нет



неужели некто не подскажет? 
в книге Д.М. Гери - JSP, нашел следующее, что подобное можно сделать при помощи "шаблонов" и пользовательских дескрипторов, например:
документ опр область
Код

<%@ taglib uri='regions' prefix='region' %>
<region:render template='/template.jsp'>
<region:put  section='title'  content='Templates' direct='true' />
<region:put  section='header'  content='/header.jsp' >
<region:put  section='content'  content='/introduction.jsp' >
...
</region:render>

а использоваться как то так, в нужном месте
Код

<region:render  section='header'

но у меня выдает ошибку на uri, что то вроде "не найдено"
Код

<%@ taglib uri='regions' prefix='region' %>


возможно кто то знает как это делается? ну или как сделать подобное...
PM MAIL   Вверх
carper
Дата 5.5.2011, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 2.3.2005

Репутация: 2
Всего: 8



Цитата(Sequd @  5.5.2011,  15:48 Найти цитируемый пост)
неужели некто не подскажет? 


Ну, у вас несколько странный вопрос, трудно понять, что вам вообще надо - с одной стороны уверяете, что "решил использовать 1 страницу", с другой тут же пишете, что собираетесь вставлять на нее другие страницы:
region:put  section='content'  content='/introduction.jsp' ...  (да еще и, судя по всему, делать это динамически, т.к. иначе о какой одной странице может идти речь.

Вы бы определились с тем, что же вам на самом деле надо, ну не может же  идея "использовать одну страницу" быть самоцелью?  smile 

Может быть вас интересует что-то типа http://tiles.apache.org/  или http://www.opensymphony.com/sitemesh/ ?
PM MAIL   Вверх
Sequd
Дата 5.5.2011, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.5.2011

Репутация: нет
Всего: нет



Цитата(carper @  5.5.2011,  19:49 Найти цитируемый пост)
http://www.opensymphony.com/sitemesh/ 

это похоже то что нужно, а нету на русском материала??? а то не совсем понятно...
PM MAIL   Вверх
carper
Дата 5.5.2011, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 2.3.2005

Репутация: 2
Всего: 8



Цитата(Sequd @  5.5.2011,  20:12 Найти цитируемый пост)
это похоже то что нужно, а нету на русском материала??? а то не совсем понятно... 


К сожалению, с русским у меня плохо, в том смысле, что я даже не пытаюсь искать книги по JAVA на русском, т.к., во-первых, их на пару порядков меньше, во-вторых, те что есть обычно относятся к более старым версиям продуктов, в-третьих, во многих имеются неприятные ошибки.

SiteMesh использует шаблон "декоратор", про него кажется можно почитать и по-русски, например, http://www.rsdn.ru/article/patterns/DecoratorPattern.xml.

Я лично использую tiles, это даже несколько более походит на то, что вы пытались изобразить, но мимолетное знакомство с SiteMesh произвело приятное впечатление.

Также можете посмотреть модный http://ru.wikipedia.org/wiki/Apache_Velocity, правда пока как только я пытаюсь встать на место обычного web дизайнера, так сразу перестаю понимать в чем его преимущество.  smile
PM MAIL   Вверх
Sequd
Дата 5.5.2011, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.5.2011

Репутация: нет
Всего: нет



Цитата(carper @  5.5.2011,  20:59 Найти цитируемый пост)
Я лично использую tiles

а что это? можно по подробнее.
PM MAIL   Вверх
carper
Дата 6.5.2011, 08:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 2.3.2005

Репутация: 2
Всего: 8



Цитата(Sequd @  5.5.2011,  22:19 Найти цитируемый пост)
а что это? можно по подробнее. 

Я уже приводил ссылку:  http://tiles.apache.org/  

Суть идеи в "объектном" подходе к проектированию страниц, а именно создаются стандартные шаблоны страниц, например, страничка с меню, страничка для "всего, что угодно, что должно иметь сверху меню, определенный фон, и трехколоночную верстку" и т.п.  Шаблоны могут "наследоваться", использовать друг-друга.

А внутреннее наполнение шаблонов конкретной, структурированной, информацией (не путать с простым обращением к нужным переменным) осуществляется как раз вставкой соотв. фрагментов.

Вот вам кусочек конфигурации tiles:
Код

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
  <definition name="defaultPage" template="/WEB-INF/jsp/templates/defaultPage/defaultTemplate.jsp">
    <put-attribute name="beginBody" value="/WEB-INF/jsp/templates/defaultPage/beginBody.jsp"/>
    <put-attribute name="body" value="Enter your body (any that you want)"/>
    <put-attribute name="footer"    value="/WEB-INF/jsp/templates/defaultPage/defaultFooter.jsp"/>
  </definition>
  
  <definition name="err404" template="/WEB-INF/jsp/templates/err404Template.jsp">
    <put-attribute name="beginBody" value="/WEB-INF/jsp/templates/defaultPage/beginBody.jsp" />
    <put-attribute name="footer"    value="/WEB-INF/jsp/templates/defaultPage/defaultFooter.jsp" />
  </definition>

</tiles-definitions>


Как можно заметить, шаблон (его описание) состоит из самых обычных jsp страничек, и сам является такой страничкой, т.е. не надо осваивать какой-то доп. язык написания шаблонов.

Вот так, например, выглядит сам шаблон defaultTemplate.jsp:
Код

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="Windows-1251"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
...
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Common header - defaultTemplate.jsp</title>
  <META http-equiv="pragma" CONTENT="no-cache">
    <style type="text/css"> 
   <!--
      .bodyImg {background-image:url("${IMGPATH}/background/japon.jpg");background-repeat: repeat;}
    -->
   </style>
   <link rel="StyleSheet" type="text/css" href="${CSSPATH}/main.css" media="all"/>
     
</head>
<body class="bodyImg">
  <tiles:insertAttribute name="beginBody" />
  <tiles:insertAttribute name="body" />
  <tiles:insertAttribute name="footer" />
</body>


Легко заметить, что это самая обычная страничка с тройкой "загадочных" тэгов insertAttribute, "секрет" которых очевиден, если взглянуть на вышеприведенный конфиг tiles.

Ну, я думаю понятно, что эти тэги с помощью обычной HТМЛ разметки  можно располагать самым причудливым образом, либо содержащиеся в них странички могут сами нести нужную информацию о своем расположении и оформлении.

Вот вам пример того, как выглядит beginBody.jsp:
Код

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="Windows-1251"%>
<div class="wrapper"> 


Ага, правда просто? Да, и не обращайте внимание на повторное задание кодировки  и незакрытый тэг <div class="wrapper"> (это мои заморочки, связанные правильным расположением футера строго под окончанием остального содержимого и проблемами с кодировкой кириллицы).
Можете здесь расположить меню, фирменный логотип  и т.п.

Остается понять, а как же использовать этот самый template:
Код

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="Windows-1251"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
....
<tiles:insertDefinition name="defaultPage">
  <tiles:putAttribute name="body">
   Ваш контент для стартовой страницы<br />
  </tiles:putAttribute>
</tiles:insertDefinition>


Я не могу здесь написать руководство, но идея, думаю, ясна.
И легко воспринимаема web-дизайнером - просто пишем кусочки привычным образом и компонуем из них мозаику,
не повторяя ни строчки кода и используя вполне себе понятные тэги.

P.S.
Вот еще тут можно глянуть, с картинками  smile   :
http://tiles.apache.org/framework/tutorial/basic/pages.html
PM MAIL   Вверх
Sequd
Дата 6.5.2011, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.5.2011

Репутация: нет
Всего: нет



Большое спасибо) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0841 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.