Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Не подключается хтмл страница


Автор: yezh 25.9.2007, 12:11
Приложение состоит из двух частей, админской и клиентской. Соответственно у каждой части свой префикс, /Admin и /Client. Все ресупсу хранятся в /res. Так вот, когда я в клиенте подгружаю с помощью <jsp:include> страничку, у меня вначале ставится (независимо от меня, т.е. это делает либо Struts либо JBoss) префикс /Client, соответственно адрес выглядит как /Client/Res/someHtml.html. Ну и естественно страница не грузится, потому что она реально лежит в /Res. 
Как этого избежать? перемещать страницу нельзя, она должна быть доступна как из админской части, так и из клиентской.

Автор: Maksym 25.9.2007, 12:25
Попробуй так ../Res/someHtml.html.

Автор: yezh 25.9.2007, 12:29
Я так и делаю
Код

<jsp:include page='<%=(String)request.getAttribute("$$helpLink")%>'/>

В риквест записана переменная пути, ее значение  /Res/someHtml.html

Автор: Maksym 25.9.2007, 12:33
yezh
Цитата(yezh @  25.9.2007,  12:29 Найти цитируемый пост)
ее значение  /Res/someHtml.html

нет, именно <jsp:include page='../Res/someHtml.html'/>

Добавлено через 39 секунд
тебе же нужно подняться выше по каталогам

Автор: yezh 25.9.2007, 13:14
Не помогает
Может я некорректно объяснил, так вот. Client и Admin это два разных модуля, Res тоже отдельный модуль
Application.xml
Код

<application>
    <display-name>PhizIC</display-name>
    <module>
        <web>
            <web-uri>WebAdmin.war</web-uri>
            <context-root>Admin</context-root>
        </web>
    </module>
    <module>
        <web>
            <web-uri>WebClient.war</web-uri>
            <context-root>Client</context-root>
        </web>
    </module>
    <module>
        <web>
            <web-uri>WebResources.war</web-uri>
            <context-root>Res</context-root>
        </web>
    </module>
</application>
И автоматически добавляется префикс /client при импортировании страницы. Т.е. если посмотреть в request то значение перменной будет /res/..
Как сделать так, что бы не добавлялся префикс /Client?

Автор: Maksym 25.9.2007, 14:26
yezh
Какие данные ты хочешь расшарить между приложениями, статику?

Автор: yezh 25.9.2007, 14:31
Да. Это просто хелп. В путь записывается хтмл страница, соответствующая просматриваемой странице в клиенте или админе. 

Автор: Maksym 25.9.2007, 14:32
Я решал похожую задачу: расшарить статические ресурсы -- картинки, css, js (сюда же можно статический html) между раличными web-приложениями. В http://forum.vingrad.ru/index.php?showtopic=136336&view=findpost&p=1102904 теме публиковал готовое решение. Но это касается только статики.

Не уверен, можно ли расшарить динамику за пределы контекста приложения...

Добавлено @ 14:32
Цитата(yezh @  25.9.2007,  14:31 Найти цитируемый пост)
Да. Это просто хелп. В путь записывается хтмл страница, соответствующая просматриваемой странице в клиенте или админе.  

Думаю, что сервлет из темы, ссылку на которую я дал, тебе подойдет.

Добавлено @ 14:33
Прочти всю тему -- будет понятно зачем я это затеял и что в результате получилось.

Автор: yezh 25.9.2007, 14:57
Хм... 
Дело в том, что картинки, лежащие в res грузятся безо всяких проблем.
Т.е. код 
Код

<img src="/res/add.gif"/> 

отображается прекрасно, а вот страничка не хочет. И писать что то дополнительно дико влом

Автор: Maksym 25.9.2007, 15:03
Ммм.. я тут подумал -- мой рецепт тебе не очень подходит -- раз уж ты деплоишь отдельное приложение с ресурсами. Моя задача состояла в том чтобы расшарить ресурсы без лишних апликейшнов. И включать их инклюдом тоже не получится.

Картинки приходят без проблем потому, что из забирает браузер, обычным get-запросом.
jsp инклюд же работает исключительно на сервере. Сомневаюсь, что он может подключить что-либо из вне контекста приложения.

Беглый google ничего не дал. Нужно смотреть исходники -- реализацию jsp:include тега, как он там работает...

Добавлено через 3 минуты и 24 секунды
о! а если попробовать подключать эти .html через iframe?

Добавлено через 5 минут и 29 секунд
Код

<iframe src="/res/someHtml.html">
Alternative text for browsers that do not understand IFrames.
</iframe>

должно сработать.

Автор: yezh 25.9.2007, 15:10
Эмм... а где можно посмотреть что это такое и с чем его едят?

Вообще была идея трассировкой посмотреть где именно добавляется префикс к пути. 
Может знаешь где именно?

Автор: Maksym 25.9.2007, 15:12
yezh
Кого iframe? Это обычный http://en.wikipedia.org/wiki/IFrame тэг, предназначен для включения контента внешней страницы в текущую.

Добавлено через 23 секунды
по моему, это то что тебе нужно

Автор: yezh 25.9.2007, 15:13
О, iframe уже лучше. Спс, буду разбираться. 
Модеры, поставьте плиз плюсик Maksym'y за меня

Автор: Maksym 25.9.2007, 15:29
yezh
http://msdn2.microsoft.com/en-us/library/ms535258.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)