2013-01-08 30 views
0

我的團隊已經準備好在Spring框架中創建一個項目併成功運行。現在我決定讓它跑得更快。Spring JSP CSS引用問題

現有項目: 我的開發人員盡其所能,並使用jsp動態創建輸出css頁面。

現有代碼:

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <jsp:include page="/WEB-INF/common/layout/head.jsp" /> 
    < jsp:include page="/WEB-INF/common/css/index.jsp" /> 
</head> 

輸出地說:

<style type="text/css"> 
    body{background: #ffffff url('<c:url value='/resources/images/logo/logo_small.png'/>') no-repeat scroll center center} 
</style> 

有這個代碼或項目,這是工作的罰款沒有錯誤。

我需要的是,我的css文件需要通過標題中的鏈接標記進行加載。這樣的事情:

<link rel="stylesheet" href="/mysite/resource/css/sitemap/index.css" type="text/css"> 

這將通過在瀏覽器中捕獲加快。

我到現在爲止所做的: 我創建了一個url指向一個jsp。

<c:if test="${branch == 'sitemap'}"> 
    <c:if test="${page == 'index'}"> 
     <%@include file="/myfile/dynamic/css/layout/index.jsp" %> 
    </c:if> 
</c:if> 

此代碼可能?工程,但有一個問題。我需要替換風格類型的開始標記和結束標記。 我做到這一點的,導入和這段代碼替換:

<c:set var="my_css"> 
    <c:if test="${branch == 'sitemap'}"> 
     <c:if test="${page == 'index'}"> 
      <%@include file="/WEB-INF/common/css/index.jsp" %> 
     </c:if> 
    </c:if> 
</c:set> 
<c:set var="css" value='${fn:replace(fn:replace(fn:replace(my_css,"<style type=\\\"text/css\\\">", ""),"</style>", ""),"\'", "99999")}'/> 
<compress:css enabled="true"> 
    <c:out value='${css}'/> 
</compress:css> 

這裏位置是造成問題。其實我需要用&#39;來代替它。

上面的代碼工作正常,並用9999代替'。但更換後& ..它無法正常工作。 &本身再次變爲& amp;

信息: 它是一個完整的項目。動態生成更多的CSS。全部在jsp頁面中。 Goodluck是每個jsp頁面只輸出css代碼。 Badluck是它包含頂部和底部的腳本標記。還有一個壞運氣在url('')上。

此代碼正在解決fn:replace標記中的問題。

或者,如果您有更好的建議,請讓我知道。

我想會有一個簡單的選擇。請讓我知道你的建議,建議和幫助。

+1

爲什麼不從樣式表jsp中刪除樣式標籤? – soulcheck

+0

我使用ide,所以如果我刪除樣式標籤,我的ide不會正常工作。 –

+0

你的意思是'不能正常工作'?你現在想要做的是用錘子在那裏你應該使用一個skrewdriver(和一個小的那個)。 – soulcheck

回答

0

我完成了這個。

我創建了一個新的路由/資源/ css | js,我使用內部資源視圖解析器 - (文件夾)。

我的鏈接網址像/resource/css/qtn/page1.css

In controller/resources/{type}/{page} .css。

在這裏,我得到值,並用這個在我JSP動態網頁實現我的結果。

爲了安全我檢查了網址它來自我自己的網頁還是不是。

提示:

在使用內部資源視圖解析器它將引發錯誤,當您通過網頁直接值資源URL因爲有時候網頁URL將被/第1頁/塊1所以我們的控制器拋出錯誤。

爲了解決這個問題,我將頁面值作爲/resource/css/qtn/page1.css?sub=${page}

在控制器,我們可以很容易地導管這個值,發送給我們的動態JSP作爲模式