2012-04-11 31 views
0

我有一個jsp頁面,其中正在調用我的xhtml頁面。我將xhtml映射到facesServlet並讓所有資源servlet處於活動狀態,以便將所有js和css文件都映射爲好,如果我點擊xhtml頁面。在應用程序中未引用的JS文件

如果我點擊jsp頁面,那麼這些文件沒有被引用螢火蟲彈出各種js錯誤。

爲了解決這個問題,我添加了js和css文件到web文件夾,並且包括並嘗試了它們,包括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> 

任何想法,建議?

更新:

我使用jsf2創建新頁面的要求,我已創建xhtml頁面,但我想我的應用程序headerfooter主題和那些在jsp定義現在我試圖尋找整合jsp分成xhtml,但有人建議不要這樣做。

嘗試How to include a JSP page in a Facelets page?,但沒有工作,要麼作爲my標籤無法識別,因此最後嘗試創建jsp頁,其中包括它裏面xhtml頁,似乎工作,但不是100%。

所以,因爲它代表現在如果我打xhtml頁面直接,然後它工作,但如果我打jsp頁面header/footer信息,然後icefaces或者說​​東西不起作用100%,希望我能澄清一下我試圖實現。

更新2

JS從javax.faces.resources文件中引用的XHTML頁面上不錯,但在jsp頁面沒有被引用。

+0

否定的任何特定原因? – Rachel 2012-04-11 20:33:50

+0

考慮標點符號 – 2012-04-11 20:46:35

+0

@SteveH .:修改,希望這有助於。 – Rachel 2012-04-11 20:55:17

回答

2

這是必須下載這些JS/CSS文件的網頁瀏覽器。這不是必須加載/包含這些JS/CSS文件的服務器。

因此,您在srchref屬性中指定的路徑相對於您在瀏覽器地址欄中看到的當前請求URL被解析。它們不是相對於公共web內容中JSP文件的位置而被解析的。

所以,如果你碰巧有像這樣

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

然後例如在請求URL的上下文路徑您<link href="/css/Main.css">將由網頁瀏覽器從以下網址下載

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

而應該實際上已經

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" /> 

(並把/css/js/resources公共webcontent子文件夾中的文件夾)


順便說一句,下面一行使得完全沒有意義:

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

你在這裏混合視圖技術。你不能在另一箇中包含這個。 Facelets是JSP的繼承者。使用這一個或另一個。你可以在1個webapp中混合使用它們,但不能在1個視圖中混合使用。

+0

我更新了我的問題,更詳細地介紹了使用jsp和xhtml頁面的用例場景。 – Rachel 2012-04-12 14:35:02

+0

這是不合時宜的。這完全與引用JS/CSS文件的問題無關。問一個新問題。 – BalusC 2012-04-12 14:36:41

相關問題