Я только что создал новое приложение IceFaces, и я пытаюсь включить панель навигации на всех страницах. Когда я использую тег jsp:directive.include
, файл включен, но когда я использую jsp:include
, он, похоже, не загружается. Фактически, когда я проверяю исходный код HTML в своем браузере, это похоже на то, что включенный файл был полностью пуст. Я не хочу использовать jsp:directive.include
, потому что он не будет автоматически показывать обновления для включенного файла.JSP: include не отображает включенный файл
Мое окружение: Eclipse 3.5, Tomcat 6, JSF 1.2, IceFaces 1.8.
Шаги по воспроизведению проблемы и куски кода:
создать веб-проект нового Dynamic со следующими параметрами: Цель выполнения: Apache Tomcat v6.0 Динамическая версия веб-модуль: 2,5 конфигурации : Проект ICEfaces
создать новый файл ICEFaces JSPX - домашний файл. Некоторый код:
<jsp:directive.page contentType="text/html;charset=ISO-8859-1" /> <f:view > <ice:outputDeclaration doctypeRoot="HTML" doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN" doctypeSystem="http://www.w3.org/TR/html4/loose.dtd" /> <html> <head> <title>test file</title> <link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css" /> </head> <body> <jsp:directive.include file="./vertical_navigation.jsp" /> <!-- working --> <jsp:include page="./vertical_navigation.jsp" /> <!-- not working, no error though --> </body> </html> </f:view>
создать файл, который будет включен, а также в качестве нового ICEfaces JSPX файл. Упрощенный код:
<ice:form> <ice:panelGrid columns="1" width="152"> <ice:graphicImage url="./img/image.jpg"></ice:graphicImage> <ice:panelCollapsible expanded="true"> <f:facet name="header"> <ice:panelGroup> <ice:outputText value="Customer"/> </ice:panelGroup> </f:facet> <ice:panelGrid columns="1"> <ice:commandLink action="customer"><ice:outputText value="Customer name" /></ice:commandLink> </ice:panelGrid> </ice:panelCollapsible> </ice:panelGrid> </ice:form> </body> </html> </f:view>
Некоторые замечания:
- Я совершенно не знаком с JSF, так что простите меня за любую очевидную ошибку.
- В домашнем файле (первый) Я не использую оба тега одновременно. Я вставил оба здесь, чтобы показать, что я пытаюсь использовать оба варианта.
- Я создал оба файла как «файл ICIFaces JSPX», но второй был назначен расширение .jsp.
- Когда я использую тег
directive.include
, загруженный файл загружается. Но если я его изменю, он не будет автоматически переиздан.
причина не ясна для меня, но я нашел некоторые документы о том, что мы не должны использовать JSP: включить в ICEfaces: Http: //www.icefaces. org/docs/v1_8_2/htmlguide/devguide/references2.html –
Потому что они настоятельно рекомендуют разметку XML. Кстати, посмотрели ли вы [Facelets] (http://facestutorials.icefaces.org/tutorial/facelets-tutorial.html)? Это примерно сказано о расширении на JSPX и с Java EE 6 - преемником JSP. Там ''. –
BalusC
Да, я пытаюсь использовать Facelets, но я пока немного смущен. Во всяком случае, я больше не использую jsp: include. jsp: directive.include работает отлично и обновление любого измененного файла не так важно. –