powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
12 сообщений из 12, страница 1 из 1
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687076
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня некоторый файл jsp в котором есть такой код:
Код: xml
1.
2.
3.
                                        <c:if test="${not empty contentOut}">
                                            <jsp:include page="${contentOut}" flush="true"/>
                                        </c:if>



Значит переменная contentOut содержит просто название файла, который должен проинклюдится в данном месте.
Если в качестве названия у меня файл *.jsp то всё нормально, а если *.jspf то он инклюдится, но в нем не отрабатывают разные тэги.
Например переменные так и выводит на страничку ${varOne} место содержания varOne или в файле есть
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
и она так и выводит на страничку это не выполняя... соответственно вся кирилица в кракозябрами идет далее.

В общем мне нужно динамически вставлять *.jspf и чтоб содержание их выполнялось как в *.jsp
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687081
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоесть другими словами получаю что не работает так:
<jsp:include page="div-cktest.jspf" flush="true"/>

но работает так:
<jsp:directive.include file="div-cktest.jspf" />

но в <jsp:directive.include file="div-cktest.jspf" /> нельзя вставить переменную типа так <jsp:directive.include file="${contentOut}" />
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687089
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто так <%@ include file="div-cktest.jspf" %> тоже работает но опять таки не хочет работать с переменной <%@ include file=${contentOut} %>
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687091
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У контейнера есть маппинг для jsp, но нет для jspf.
Например Tomcat/conf/web.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    <!-- The mapping for the JSP servlet -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687106
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. У меня только такое там:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    <!-- The mapping for the default servlet -->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!-- The mappings for the JSP servlet -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>



Я так понимаю, что <jsp:include page="относительный URL" flush="true" />
инклюдит налету странички *.jsp, но они получаются уже предкомпиленные какбы тоже и поэтому всё ок, а вот *.jspf тоже инклюдит налету, но они не предкомпиленные и всё теги в них так и выплевываются в таком виде в каком есть в исходнике.
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687114
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил
Код: xml
1.
2.
3.
4.
    <servlet-mapping>
        <servlet-name>jspf</servlet-name>
        <url-pattern>*.jspf</url-pattern>
    </servlet-mapping>



Рестартанул апачу, пересобрал проект и тем не менее не работает *.jspf показывает как есть.
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687154
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jspf</url-pattern>
</servlet-mapping>
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687176
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник , да, пробовал и так и эдак. Чот не канает. Чот не то...
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37687188
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ну так да, походу никак, .jspf - именно для статического инклуда
http://stackoverflow.com/questions/2081005/what-is-jspf-file-extension-how-to-compile-it
http://publib.boulder.ibm.com/infocenter/wchelp/v5r6/index.jsp?topic=/com.ibm.commerce.developer.doc/refs/rsdjspbpjspf.htm

Кстати я так и не понял в чем сакральный смысл использования именно jspf? инклюдь jsp да не парься.
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37688474
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит придется юзать *.jsp по старинке.
...
Рейтинг: 0 / 0
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #37688557
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что в этом плохого, да и вообще jsp - это прошлый век, советую перейти на какой-нибудь легковесный фреймворк с возможностями компоновки,ну там FreeMarker или Velocity. Там почти голый html, с некоторыми вкраплениями EL, плюс удобные фичи для инклуда\темплейтинга
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
    #38400308
Mak13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если эта тема кому-нибудь окажется актуальной...

.jspf файлы - они для директив <%@include file="/includes/Header.jspf"%>

В них можно вставлять EL-выражения, они будут работать.
Но: Когда страничка генерируется, директива тупо вставляет содержимое .jspf - файла в ту
.jsp-страницу, где директива воткнута. Потом всё компилируется. Происходит эта процедура один раз.
По итогу получается, что EL-выражение оказывается в .jsp-странице, потому всё и работает. Контейнер по умолчанию настроен, что EL-выражения в .jsp файлах нужно эвалюировать.

Если вы обращаетесь к .jspf файлу в рантайме:
<jsp:include page="/includes/Header.jspf">
<jsp:param name="root" value="./.."/>
</jsp:include>
А в шаблоне, например, параметр этот цепляется:
<img src="${param.root}/images/web-services.jpg" alt="web-services logo">

контейнер обратится к .jspf - файлу и выдаст его ответ "как есть", EL-выражения обрабатывать не будет.
Стоит подправить расширение файла на .jsp - всё заработает.

Мораль проста. Используйте файлы по назначению :)

А вообще да. JSP - очень бородатая попытка разделить отрисовку и контроллер. С тех времён много чего нового напридумывали...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не совсем понимаю разницу между загрузкой *.jsp и *.jspf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]