Wicketディレクトリ構造
質問
wicketのディレクトリ構造を把握しようとしています。全然わかりません! images / logo.gifまたはそのようなもので画像をロードしたいとしましょう。画像フォルダはどこに配置する必要がありますか? これで私を助けてください! ;)
解決
Wicketは、OOPパラダイムを通じてWebページ全体の思考を促進します。これには、再帰処理が含まれます。
したがって、 SomePage extends WebPage
がパッケージ myprogram.view.pages
にある場合、ほとんどの場合、イメージなどを myprogram.view.pagesに追加する必要があります。 .assets
(または他の同様の名前の論理パッケージ)を呼び出して、SomePageソースに画像を追加します
add(new Image("id", new ResourceReference(this.getClass(), "assets/logo.gif")));
このようにして、すべてのページ、そのコンポーネント、およびもちろん関連するアセットを合理的な構造にできます(私は、人々がまだすべてのCSSスタイルを1つの巨大なスタイルシートに詰め込んでいるのを悩ませていますか?)他のすべてから切り離されています。
そして高度な部分:ページの静的要素については、明らかにやや重い方法であるため、上記のことはしたくないでしょう。実際、デザイナーの人がどのロゴ画像を決定できるようにしたいかもしれません使用する。このようなことには、
を使用します<wicket:link>
<img src="images/logo.gif" />
</wicket:link>
マークアップファイル内のストレート。 wicket:link タグは自動的にリンクします正しいファイルを指す画像リソース(パスは SomePage.class
に関連しています!)、さらには自動的にキャッシュを処理します。
他のヒント
プロジェクトのルートに画像フォルダーを直接作成できます。つまり、戦争アーカイブには、ルートレベルでMETA-INF、WEB-INF、イメージが含まれている必要があります。または、サーブレットコンテナーのWebアプリフォルダーのルート。次に、HTMLのような
でそれを参照します<img src="images/pic1.jpg"/>
Javaコードから画像を参照している場合は、サーブレットパスに関連するようにする必要があります。
により、サーブレットコンテキストからアクセスできます。class MyPage extends WebPage { public MyPage() { final ServletContext ctx = ((WebApplication) getApplication()).getServletContext(); File imgFile = new File(ctx.getRealPath("/images/pic1.jpg")); } }
Netbeansでは、ソースパッケージtld.domain.projectの下にあります そこで、imagesという名前の新しいフォルダーを作成し、それが機能します