9

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

ここのガイド ( 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 を使用するように指示するのか、私にはわかりませんでした。

どんな助けでも大歓迎です!

4

3 に答える 3

18

Wicketがマークアップを解析し、適切なリンクを考え出そうとしている間、Wicketがマークアップを理解するのを支援する必要があります。

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

たとえば、リソースがWicketの管理下にある場合、変数の置換、圧縮、縮小、集約など、あらゆる種類のリソースを使用して実行できます。これらはWicketの一部です。

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

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

タグは、<wicket:link>Wicketに、囲まれたリソースを探して、Javaクラスパスでそれらを解決しようとするように指示します。

于 2012-04-17T06:31:20.443 に答える
3

一般に、css を project/src/main/webapp/css に追加する必要があります。そうすれば、css/conor.css によってアクセスされます。

于 2012-04-17T07:39:47.803 に答える
2

css ファイルを wicket Java ページに次のようにロードできます。

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

プロジェクトに css ファイルがある場合は、最初にロードできます。

于 2013-04-01T21:45:31.440 に答える