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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jsp, вынесение общей части в отдельный jsp 
:(
    Опции темы
3,14
Дата 19.2.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



что то я совсем запутался. есть обычная стурктура страницы

Код

<html>
<body>
    header
    <table width="100%">
        <tr>
            <td>менюшка</td>
            <td>контент страницы</td>
        </tr>
    </table>
</body>
</html>


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


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
iluvatar
Дата 19.2.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Юзай tiles.
PM MAIL ICQ   Вверх
3,14
Дата 19.2.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



iluvatar,  smile 


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Maksym
Дата 19.2.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



3,14
Если это просто jsp то стандартное средство <%@ include file="MyContent.jsp" %> ...
PM MAIL   Вверх
3,14
Дата 19.2.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Maksym, хедер то так включишь, а как быть с таблицей, ведь содержание страницы это часть этой таблицы, как и менюшка, к-ая часть общего темплейта...


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Maksym
Дата 19.2.2008, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



3,14
То есть ты хочешь параметризовать этот инклюд?
PM MAIL   Вверх
3,14
Дата 19.2.2008, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Maksym, ну не знаю, поможет ли тут параметризация, те при ней параметром нужно будеть сделть весь контент страницы. А я хочу решить данную проблему, не уверен что include  тут поможет...


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
powerOn
Дата 19.2.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



A facelets не помогут? Сам глубоко в них не разбирался, но идея вроде похожая. 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
3,14
Дата 19.2.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



powerOn, я их  и так использую, но ничего для решения именно этой проблемы в них я не нашёл :(


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
AlexeyVorotnikov
Дата 19.2.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

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



Что-то я лично не понял в чём проблема? Можно поподробнее?

Может, <jsp:include> поможет?


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
PashaOvechkin
Дата 19.2.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

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



Если инклуд статичный, то используем директиву

 
Код

<%@ include file="relativeFragment.jsp" %>


если содержание хедера или футера меняется в зависимости от параметров, то йсп екшен ->
 
 
Код


<jsp:include page="{relativeURL | <%= expression %>}"    
   flush="true| false" >    
   <jsp:param name="parameterName"    
      value="{parameterValue | <%= expression %>}" />+    
</jsp:include>





Это сообщение отредактировал(а) PashaOvechkin - 19.2.2008, 15:52
PM MAIL Skype   Вверх
Maksym
Дата 19.2.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



3,14
В смысле не нашел? У facelets же именно темплейтная парадигма. 

Шаблон (template.xhtml):
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:ui="http://java.sun.com/jsf/facelets">

<head>

</head>
<body>
....
    <ui:insert name="content1" />
....
    <ui:insert name="content2" />
....
</body>
</html>



Страница (page.xhtml):
Код

<ui:composition template="template.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets">

<ui:define name="content1">    
.....
</ui:define>    
    
<ui:define name="content2">
.....
</ui:define>
    
</ui:composition>


Добавлено через 3 минуты и 16 секунд
Любое количество insert'ов (точек вставки) в темплейте и define'ов (подстановок) в страницах, на месте многоточий -- любой валидный xhtml (который можно расширять tag'овыми библиотеками на базе jsf).
Можно делать вложенные темплейты.

Это сообщение отредактировал(а) Maksym - 19.2.2008, 16:04
PM MAIL   Вверх
Maksym
Дата 19.2.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Пример простенькой компоненты в facelets. Типа показывает ошибки валидации формы.

В странице:

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:my="http://my/custom">
...
<my:err errors="#{flow.errors}" /> 
...
</html>


В custom.taglib.xml (кладется в WEB-INF):

Код

<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "https://facelets.dev.java.net/source/browse/*checkout*/facelets/src/etc/facelet-taglib_1_0.dtd?content-type=text%2Fplain&rev=1.3.16.1">
<facelet-taglib>

      <namespace>http://my/custom</namespace>
      <tag>
         <tag-name>err</tag-name>
         <source>../components/errors.xhtml</source>          
      </tag>     
                      
       ....

</facelet-taglib>


Библиотеку надо не забыть описать в web.xml:
Код

<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
....
    <context-param>
        <param-name>facelets.LIBRARIES</param-name>
        <param-value>/WEB-INF/custom.taglib.xml</param-value>
    </context-param>
....

</web-app>



В components/errors.xhtml -- собственно компонента (тут моя конкретная реализация -- не важно, можно все что угодно наваять):
Код

<ui:component
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:c="http://java.sun.com/jstl/core">
<c:if test="#{!errors.haveMessages}">
    <div id="errorTable">
        <c:if test="#{errors.anyoneIdIsHighlighted}">
            <p class="error">#{bundle.common_validation_errors_common_text}</p>
        </c:if>    
        <il class="error">
            <c:forEach var="msg" items="#{errors.messages}">
                <li>#{msg}</li>
            </c:forEach>
        </il>  
    </div>   
</c:if>
</ui:component>



И все -- можно везде использовать. Очень удобно.

Это сообщение отредактировал(а) Maksym - 19.2.2008, 16:29
PM MAIL   Вверх
3,14
Дата 20.2.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



PashaOvechkin, include решает проблему далеко не до конца, всё равно на странице остаётся много общих кусков:

Код

<html>
<head>
<%@ include file="head.jsp"%>
</head>
<body>
  <%@ include file="banner.jsp"%>
  <table width="100%">
     <tr>
        <td class="menu">
           <%@ include file="menu.jsp"%>
        </td>
        <td class="content">
            И вот только тут само содержимое страницы... :(
        </td>
     </tr>
  </table>
</body>
</html>


Добавлено через 1 минуту и 45 секунд
Maksym, похоже это то, что доктор прописал, попробую разобраться...


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
iluvatar
Дата 21.2.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



если юзаешь struts - лучше tiles не найти..
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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