Wicket Verzeichnisstruktur
Frage
Ich versuche, die Verzeichnisstruktur von Wicket, um herauszufinden. Ich verstehe es nicht! Sagen wir, ich möchte ein Bild laden mit images / logo.gif oder so ähnlich. Wo muss ich die Bilder-Ordner ablegen? Bitte helfen Sie mir mit diesem! ;)
Lösung
Wicket fördert ganze Web-Seiten durch OOP Paradigmen zu denken und das schließt recource Handhabung.
Also, wenn Ihr SomePage extends WebPage
in Paket myprogram.view.pages
ist, sollten Sie höchstwahrscheinlich Bilder usw. in dem myprogram.view.pages.assets
( oder andere ähnlich benannten, logisches Paket ) und dann das Bild in der Quelle hinzufügen Eineseite durch den Aufruf
add(new Image("id", new ResourceReference(this.getClass(), "assets/logo.gif")));
So können Sie alle Ihre Seiten haben wird, seine Komponenten und natürlich damit verbundenen Vermögenswerte in angemessenen Struktur ( bin ich der einzige verärgert, dass die Menschen immer noch alle CSS-Stylings zu einem riesigen Sheet stopfen? ) die von allem anderen abgelöst wird.
Und nun die erweiterten Teile: Für statische Elemente auf Ihrer Seite, die Sie wahrscheinlich nicht wollen, die oben zu tun, da es offensichtlich etwas Schwergewicht Art und Weise, es zu tun, und Sie können tatsächlich wollen, dass der Designer Kerl ermöglichen Bild zu entscheiden, welches Logo benutzen. Für diese Art von Dingen, verwenden Sie
<wicket:link>
<img src="images/logo.gif" />
</wicket:link>
gerade in der Markup-Datei. Die Wicket: link Tag wird das automatisch verlinken Bildressource auf die richtige Datei verweist (Pfad ist relevant für den SomePage.class
!) und sogar automatisch behandelt Caching.
Andere Tipps
Sie können Bildordner direkt im Stammverzeichnis Ihres Projektes erstellen. das heißt Ihr Kriegsarchiv muss META-INF, WEB-INF, Bilder auf Root-Ebene enthalten. Oder in Wurzel Ihrer Web-App-Ordner in Servlet-Containern. Referenz es dann in Ihre HTML ist wie
<img src="images/pic1.jpg"/>
Wenn Sie das Bild aus dem Java-Code sind verweisen, müssen Sie es zu Ihrem Servlet-Pfad machen relativ. Es kann durch
acessed durch Servletkontext werdenclass MyPage extends WebPage { public MyPage() { final ServletContext ctx = ((WebApplication) getApplication()).getServletContext(); File imgFile = new File(ctx.getRealPath("/images/pic1.jpg")); } }
In Netbeans ist es unter Quellcode-Pakete tld.domain.project Dort können Sie einen neuen Ordner Bilder machen genannt und es funktioniert