Domanda

Sto cercando di capire la struttura delle directory di wicket. Non capisco affatto! Diciamo che voglio caricare un'immagine con images / logo.gif o qualcosa del genere. Dove devo posizionare la cartella delle immagini? Per favore aiutatemi con questo! ;)

È stato utile?

Soluzione

Wicket promuove il pensiero di intere pagine Web attraverso paradigmi OOP e questo include la gestione delle risorse.

Quindi, se il tuo SomePage estende la pagina Web è nel pacchetto myprogram.view.pages , molto probabilmente dovresti aggiungere immagini ecc. a myprogram.view.pages .assets ( o altri pacchetti logici con nome simile ) e quindi aggiungere l'immagine nella fonte SomePage chiamando

add(new Image("id", new ResourceReference(this.getClass(), "assets/logo.gif")));

In questo modo avrai tutte le tue pagine, i suoi componenti e ovviamente le risorse correlate in una struttura ragionevole ( Sono l'unico ad essere infastidito dal fatto che le persone continuino a raggruppare tutti i loro stili CSS su un unico grande foglio di stile? ) che è distaccato da tutto il resto.

E ora le parti avanzate: per gli elementi statici sulla tua pagina molto probabilmente non vorrai fare quanto sopra poiché è ovviamente un modo un po 'pesante per farlo e potresti effettivamente voler consentire al designer di decidere quale immagine del logo usare. Per questo tipo di cose, usa

<wicket:link>
    <img src="images/logo.gif" />
</wicket:link>

direttamente nel file di markup. Il tag wicket: link collegherà automaticamente il tag risorsa immagine che punta al file corretto (il percorso è rilevante per SomePage.class !) e gestisce anche automaticamente la memorizzazione nella cache.

Altri suggerimenti

Puoi creare una cartella di immagini direttamente nella radice del tuo progetto. cioè il tuo archivio di guerra deve contenere immagini META-INF, WEB-INF, a livello di root. O nella radice della cartella dell'app Web nel contenitore servlet. Quindi fai riferimento in HTML come

<img src="images/pic1.jpg"/>

Se si fa riferimento all'immagine dal codice java, è necessario renderlo relativo al percorso del servlet. Può essere acceduto attraverso il contesto servlet da

class MyPage extends WebPage {
  public MyPage() { 
     final ServletContext ctx = ((WebApplication) getApplication()).getServletContext();
     File imgFile = new File(ctx.getRealPath("/images/pic1.jpg"));
   }
}

In Netbeans è sotto Pacchetti di origine tld.domain.project Lì crei una nuova cartella chiamata images e funziona

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top