2012-04-16 4 views
9

私は周りを見回してきました。自分のCSSをWicketのウェブサイトプロジェクトに追加するためのダミーのガイドを見つけることができません。しかし、私が始める前に...私は適切なJava開発にかなり新しいです。だから私は "ダミーのガイド"と言うとき、私は本当にそれを意味する!私のここでのシンプルで明確な説明は非常に高く評価されています!Wicket&CSS resources

私はここでこのガイド(http://wicket.apache.org/start/quickstart.html)を使い始めました。次に、私は自分のCSSを追加して、それを使いこなしてみたいと思います。そして私はどこにも早く行きません。主に私はjavaでこれを行う方法の手がかりを持っていないので(私はC#/ asp.netの背景から来る)。

とにかく、私は何ができるか、私は推定にApache Wicketのは、すでにこのことを知っている知っているが、project/src/main/java/com/xyz

を次のようにクイックスタートのソースが所定の位置にあなたのコードを作成しているものは、ここではCSSのフォルダを追加しました。.. 。私は、サンプルのCSSを作成し、私はこのようにそれをここで立ち往生:

project/src/main/java/com/xyz/css/conor.css 

(containing something real simple like the following) 

h2 { 
    font-family: tahoma; 
} 

をその後、私は私のhomepage.htmlでWicketのデフォルトCSSを削除し、次のように地雷を参照するように、それを変更:

<link rel="stylesheet" href="css/conor.css" type="text/css" /> 

しかし、私のページはconor.cssに注意を払っていません...明らかに私は何か間違っていますが、Javaダミー(別名私!)のステップガイドによるステップを見つけることができません。

私はEclipse用のWebツールをインストールする必要があるようなことを読んでいます。私はこれが私にとって何を使用しているのか、なぜ私のページにCSSを使用するよう指示するのか分かりませんでした。

ご協力いただきありがとうございます。

答えて

17

Wicketはマークアップを解析して適切なリンクを見つけようとしますが、Wicketがマークアップを理解できるようにする必要があります。

あなたの場合、Javaクラスパスにあるリソースにリンクしようとします。これは、Webコンテキストルート(src/main/webappにあります)とは異なります。クラスパスリソースとWebコンテキストリソースの違いは、Wicketがクラスパスリソースへのアクセスを管理し、コンテナ(jetty、tomcat、glassfishな​​ど)がWebコンテキストリソースへのアクセスを担当し、アクセスを制御していることです。

たとえば、リソースがWicketの範囲にある場合、変数置換、圧縮、縮小、集約など、あらゆる種類の処理を行うことができます。これらはウィケットの一部です。

Wicketに、リンクされたリソースが制御されているとは言わなかったので、Wicketはコンテナでそれらを処理することを想定しています。これを軽減するには、<link>タグの周囲に<wicket:link>タグを追加する必要があります。

<head> 
    ... 
    <wicket:link> 
    <link rel="stylesheet" href="css/conor.css" type="text/css" /> 
    ... 
    </wicket:link> 
</head> 

<wicket:link>タグが囲まれた資源を探し、Javaクラスパス上にそれらを解決しようとするウィケットを教えてください。

+1

優秀、ありがとう。どちらもウィケットを置く:リンクタグをつけてwebappに追加するとうまくいくようだ。しかし、質問してください...これを行うための推奨される方法は何ですか? –

+0

あなたのユースケースによって異なります。再利用可能なコンポーネントの場合は、コンポーネントの隣にjsとcssを入れたいと思うでしょう。アプリケーションでは、1つの大きなjsファイルと1つの大きなCSSファイルが必要です。 –

+0

ありがとうございました。私はwebappのフォルダに行くと思うそれはちょうど私が必要とするサイトCSSのすべてです。 –

3

一般的には、あなたのcssをproject/src/main/webapp/cssに追加する必要があります。その後、css/conorによってアクセスされます。CSS

+0

この回答に感謝します。あなたの貢献とMartijnsの間に私は必要なものを見つけました。 –

2

は、あなたはそのようなあなたの改札JavaのページではCSSファイルをロードすることができます。

@Override 
public void renderHead(IHeaderResponse response) { 
    response.render(CssHeaderItem.forReference(new CssResourceReference(myCssFile.class, "myCssFile.css"))); 
} 

、あなたのプロジェクトでcssファイルを持っている場合は、最初にロードすることができます。