2011-02-10 8 views
0

固定された場所に表示された静的コンテンツの小さなビットを追加する必要がある多数のJSPページがあります。コンテンツは、現在のページコンテンツに表示されます。私の質問は、300ページすべてを修正することなく、StrutsやCSSを使ってコンテンツを挿入する方法があるのでしょうか?StrutsまたはCSSを使用してすべてのJSPページにイメージまたはテキストを追加します。

たとえば、私が現在持っているすべてのウェブサイトにロゴを表示したい場合は、一番下にホバーします。

すべての300ページに変更を加えることなくこれを行いたいと思います。残念ながら、ページにはメニューヘッダー/フッターファイルは含まれていません。私はCSSページを使用しています。

答えて

1

sitemeshをチェックしてみるとよいでしょう。このようにフルインストールと設定の詳細については、ドキュメントを読んでますが、基本的には、例えば、あなたが「マスター」デコレータを作成することができます(皮膚、またはテンプレートのようなデコレータを考える):

<div id="header">Whatever you want here</div> 
<div class="docBody"><decorator:body /></div> 

次にこれを追加あなたのweb.xml

<filter> 
    <filter-name>sitemesh</filter-name> 
    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>sitemesh</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

にスニペット、その後sitmeshは要求をインターセプトし、各JSPからの結果を中心に「マスター」デコレータをラップします。つまり、各jspのコンテンツは<decorator:body>にレンダリングされます。

+0

これはまさに私がやりたいことと同じように聞こえます。この方法がうまくいくと思いますか?私はどんな問題にぶつかるのですか? – Organiccat

+0

私はそれがうまくいく可能性が高いと思います。しかし、サーブレットやJavaフレームワークの快適さに応じて、重要な学習曲線が必要になるかもしれません。 SpringMVC、Struts2、または同様のフレームワークで作業している場合は、実行可能にする必要がありますが、sitemeshに慣れて、opensymphis apisとライブラリの動作に1日か2日かかることをお勧めします。がんばろう! – Upgradingdave

+0

私は週または2つを計画します:) – Organiccat

1

300ページすべてを変更することなく、既存のCSSスタイルシートを変更することだけが可能です。

画像を追加するには、background-imageプロパティを使用してください。

#someId { 
    background-image: url('images/foo.png'); 
} 

contentプロパティと組み合わせて:beforeまたは:after pseudoselectorを使用し、いくつかのコンテンツを追加します。

#someId:after { 
    content: 'some content'; 
} 

注:あなたはまだそのブラウザをサポートしたいかどうかわからない、IE6/7で動作しません。

最後の手段として、JavaScript/jQueryを取得してHTML DOMツリーを操作する(新しい要素を挿入する)ことができます。しかし、これにはまだすべてのページにロードされている既存の<script>ファイルが必要です。

関連する問題