Вопрос по java, javascript, jsf – JS-файлы, на которые нет ссылок в приложении

0

У меня есть страница JSP внутри, которая вызывает мою страницу HTML. Я сопоставляю xhtml и FaceServlet, и активен весь ресурсный сервлет, поэтому он прекрасно отображает все файлы js и css, если я нажму страницу xhtml.

Если я попадаю на страницу jsp, то на эти файлы нет ссылок firebug выскакивает всякие ошибки js.

Чтобы обойти это, я добавил файлы js и css в веб-папку, и я включаю и пробовал их в том числе в xhtml, а также на странице jsp, но на них нет ссылок, и на данный момент, если я непосредственно нажимаю на страницу xhmtl, загрузка файла работает нормально, но если я иду и попадаю на страницу jsp, после чего получаю ошибки js, есть ли другой способ получить файл js?

Вот как ссылаюсь на мойjs файлы

<%@ include file="/common/taglibs.inc" %>

<html>
<head>
    <link rel="stylesheet" href="/css/Main.css" type="text/css">
    <link rel="stylesheet" href="/css/Admin.css" type="text/css">
    <link rel="stylesheet" href="/css/Home.css" type="text/css">
    <script type="text/javascript" src="/js/icefaces/ace-jquery.js"/>
    <script type="text/javascript" src="/js/icefaces/ace-components.js"/>
    <script type="text/javascript" src="/js/icefaces/icepush.js"/>
    <script type="text/javascript" src="/js/icefaces/bridge.js"/>
    <script type="text/javascript" src="/js/icefaces/compat.js"/>
    <script type="text/javascript" src="/js/icefaces/fileEntry.js"/>
    <script type="text/javascript" src="/js/icefaces/jsf.js"/>
    <script type="text/javascript" src="/js/icefaces/icefaces-compat.js"/>


    <!-- BEGIN SCRIPT TO OPEN RIGHT NOW HELP POPUP, THIS SCRIPT INCLUDES THE FUNCTION OPENRN-->
    <
    %@ include file="/js/popupRightNow.inc" %>

    <!-- END SCRIPT TO OPEN RIGHT NOW HELP POPUP, THIS SCRIPT INCLUDES THE FUNCTION OPENRN-->

    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<jsp:include page="/navigation/TopNav.jsp" flush="true"/>

<jsp:include page="/trade_entry/UploadBlotter.xhtml"/>


<!--BEGIN BOTTOM NAV -->
<jsp:include page="/navigation/BottomNav.jsp" flush="true"/>
<!--END BOTTOM NAV -->
</body>
</html>

Есть мысли, предложения?

Update:

У меня есть требование создания новых страниц с использованиемjsf2 и я создалxhtml страница, но я хочу получить мое заявлениеheader а такжеfooter темы и те, которые определены вjsp Теперь я попытался найти для интеграцииjsp вxhtml но было справедливо предположено, что нельзя делать это.

ПыталсяКак включить страницу JSP в страницу Facelets? но это не сработалоmy теги не были распознаны и поэтому, наконец, попытался создатьjsp страница и включеныxhtml страница внутри, и это, кажется, работает, но не 100%.

Так как это стоит прямо сейчас, если я ударилxhtml страница напрямую, то это работает, но если я нажмуjsp страница сheader/footer информация тогдаicefaces или сказатьjsf Вещи не работают на 100%, надеюсь, я смогу уточнить, чего я пытаюсь достичь.

Update 2

JS файл изjavax.faces.resources ссылаются нормально на странице HTML, но не ссылаются наjsp стр.

какая-то конкретная причина для отрицания? Rachel
рассмотреть пунктуацию Steve H.
@ SteveH .: Сделал модификацию, надеюсь, это поможет. Rachel

Ваш Ответ

1   ответ
2

который должен загрузить эти файлы JS / CSS. Это не сервер, который должен загружать / включать эти файлы JS / CSS.

Итак, путь, который вы указали вsrc а такжеhref атрибуты разрешены относительно текущего URL-адреса запроса, как вы видите в адресной строке браузера. Они не разрешаются относительно расположения файла JSP в общедоступном веб-контенте.

Итак, если у вас есть контекстный путь в URL запроса, например,

http://localhost:8080/somecontextpath/page.jsp

тогда, например, ваш<link href="/css/Main.css"> будет загружен веб-браузером со следующего URL

http://localhost:8080/css/Main.css

в то время как это должноactually Был

http://localhost:8080/somecontextpath/css/Main.css

Исправьте это соответственно.

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/Main.css" type="text/css">

Или, если вы используете Facelets

<link rel="stylesheet" href="#{request.contextPath}/css/Main.css" type="text/css">

Или, если вы используете JSF 2<h:outputStylesheet> (а также<h:outputScript> компоненты)

<h:outputStylesheet name="css/Main.css" />

(and put the /css and /js folders in /resources subfolder of public webcontent)

Кстати, следующая строка не имеет абсолютно никакого смысла:

<jsp:include page="/trade_entry/UploadBlotter.xhtml"/>

Вы смешиваете технологии просмотра здесь. Вы не можете включить одно в другое. Facelets является преемником JSP. Используйте один или другой. Вы можете смешивать их в 1 веб-приложении, но не в 1 представлении.

Это оффтоп. Это не имеет ничего общего с проблемами со ссылками на файлы JS / CSS. Задайте новый вопрос.
Я обновил свой вопрос с более подробной информацией и сценарием использования для совместного использования страниц jsp и xhtml. Rachel

Похожие вопросы