0

私のチームはすべて、Spring Frameworkでプロジェクトを作成し、正常に実行する準備ができていました。今、私はそれをさらに速く実行することにしました。

既存のプロジェクト: 私の開発者は最善を尽くし、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">

これは、ブラウザをキャッチすることでスピードアップします。

これまでに行ったこと: jspを指すURLを作成しました。

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

ここで99999の場所が問題を引き起こしています。実際、私はそれを&#39;に置き換える必要があります。

上記のコードは正常に機能し、'を9999に置き換えます。ただし、&..に置き換えた後は、機能しません。&自体が再び&amp;に変わります。

情報: 完成したプロジェクトです。より多くのcssが動的に生成されます。すべてjspページにあります。幸運なことに、各jspページはcssコードのみを出力します。不幸なことに、上部と下部にスクリプトタグが含まれています。もう1つの不運はurl('')にあります。

このコードはfn:replaceタグで問題を実行しています。

または、より良い提案があれば、私に知らせてください。

簡単な選択肢があると思います。あなたの提案、アドバイス、助けを教えてください。

4

1 に答える 1

0

私はこれを達成しました。

新しいルート/resource/ css | jsを作成し、内部リソースビューリゾルバー-(フォルダー)を使用します。

私のリンクURLは/resource/css/qtn/page1.cssのようにmoethingです。

コントローラの/resources/{タイプ}/{ページ}.css。

ここで、タイプページの値を取得し、これを動的jspページで使用して結果を達成しました。

セキュリティのために、URLが自分のページからのものかどうかを確認しました。

ヒント:

内部リソースビューリゾルバーを使用しているときに、ページの値をリソースのURLに直接渡すと、エラーがスローされます。これは、ページのURLが/ page1 / block1になることがあり、コントローラーがエラーをスローするためです。

これを解決するために、ページ値を/resource/css/qtn/page1.css?sub=${page}として渡しました。

コントローラでは、このサブ値を簡単にキャッチして、モデルとして動的jspに送信できます。

于 2013-01-16T07:41:28.577 に答える