Pregunta

Estoy tratando de descubrir la estructura de directorios de wicket. ¡No lo entiendo en absoluto! Digamos que quiero cargar una imagen con images / logo.gif o algo así. ¿Dónde tengo que colocar la carpeta de imágenes? ¡Por favor, ayúdame con esto! ;)

¿Fue útil?

Solución

Wicket promueve el pensamiento de páginas web completas a través de paradigmas OOP y eso incluye el manejo de recursos.

Entonces, si su SomePage extiende WebPage está en el paquete myprogram.view.pages , lo más probable es que agregue imágenes, etc. a myprogram.view.pages .assets ( u otro paquete lógico con un nombre similar ) y luego agregue la imagen en la fuente de SomePage llamando

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

De esta manera, tendrá todas sus páginas, sus componentes y, por supuesto, los activos relacionados en una estructura razonable ( ¿soy el único molesto de que la gente todavía agrupe todos sus estilos CSS en una gran hoja de estilo? ) que está separado de todo lo demás.

Y ahora las partes avanzadas: para elementos estáticos en su página, lo más probable es que no quiera hacer lo anterior, ya que obviamente es una forma bastante pesada de hacerlo y es posible que desee permitir que el diseñador decida qué imagen de logotipo usar. Para este tipo de cosas, use

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

directamente en el archivo de marcado. La etiqueta wicket: link vinculará automáticamente la etiqueta recurso de imagen que apunta al archivo correcto (la ruta es relevante para SomePage.class !) e incluso maneja automáticamente el almacenamiento en caché.

Otros consejos

Puede crear una carpeta de imágenes directamente en la raíz de su proyecto. es decir, su archivo de guerra debe contener META-INF, WEB-INF, imágenes a nivel raíz. O en la raíz de la carpeta de la aplicación web en el contenedor de servlets. Luego haz referencia a él en tus html como

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

Si hace referencia a la imagen del código de Java, debe hacerla relativa a su ruta de servlet. Se puede acceder a través del contexto de servlet por

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

En Netbeans está bajo Paquetes de origen tld.domain.project Allí crea una nueva carpeta llamada imágenes y funciona

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top