2012-04-16 10 views
9

He estado buscando y no encuentro la guía de un dummy para agregar mi propio CSS a un proyecto de sitio web de Wicket. Pero antes de comenzar ... soy bastante nuevo en el desarrollo correcto de Java, así que cuando digo "Guía del muñeco", realmente lo digo en serio. Explicaciones simples y claras para mí aquí son muy apreciadas!Wicket & CSS resources

Empecé con esta guía aquí (http://wicket.apache.org/start/quickstart.html) y me está yendo bien. A continuación, quiero agregar mi propio CSS y empezar a jugar con él. Y no estoy llegando a ninguna parte rápido. Principalmente porque no tengo ni idea de cómo hacer esto en Java (vengo de un fondo C#/asp.net).

De todos modos, los que saben de Apache Wicket sabrán esto ya, pero la fuente para el inicio rápido crea su código en un lugar como sigue project/src/main/java/com/xyz

Lo supuse que podía hacer era añadir una carpeta CSS aquí .. . así que creé una muestra de CSS y me quedé aquí como esto:

project/src/main/java/com/xyz/css/conor.css 

(containing something real simple like the following) 

h2 { 
    font-family: tahoma; 
} 

Entonces me quita el css por defecto peatonal incorporada en mi homepage.html y lo cambió para hacer referencia a la mina de la siguiente manera:

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

Pero mi página no presta atención al conor.css ... Obviamente estoy haciendo algo mal, pero no puedo encontrar una guía paso a paso para un dummy de Java (¡alias yo!).

He leído cosas como que necesita instalar herramientas web para eclipse. No tenía idea de qué uso era esto para mí o por qué instruiría a mis páginas para usar el CSS.

¡Toda ayuda es muy apreciada!

Respuesta

17

Mientras Wicket analiza el marcado e intenta encontrar los enlaces adecuados, debe ayudar a Wicket a comprender su marcado.

En su caso, intenta hacer un enlace a un recurso que se encuentra en la ruta de clase de Java. Esto es diferente de la raíz de contexto web (ubicada en src/main/webapp). La diferencia entre los recursos de ruta de clase y los recursos de contexto web es que Wicket es responsable y controla el acceso a los recursos class path, y que su contenedor (es decir, embarcadero, tomcat, glassfish, etc.) es responsable y controla el acceso a los recursos del contexto web .

Por ejemplo, cuando un recurso está bajo el control de Wicket, podemos hacer todo tipo de cosas con él, como sustitución de variables, compresión, minificación, agregación. Estas cosas son parte de Wicket.

Ahora que tiene el problema a mano, ya que no le dijo a Wicket que los recursos vinculados están bajo su control, Wicket supone que usted quiere que el contenedor los maneje. Para mitigar esto, debe agregar una etiqueta <wicket:link> alrededor de su (s) etiqueta (s) <link>.

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

Las etiquetas dicen <wicket:link> peatonal incorporada a buscar los recursos cerrados y tratar de resolverlos en la ruta de clase Java.

+1

Excelente, gracias por eso. Tanto poner el wicket: enlaces etiqueta alrededor y agregarlo a la aplicación web parece funcionar. Sin embargo, pregunta ... ¿cuál es la forma recomendada de hacer esto? –

+0

Depende de su caso de uso. Para los componentes reutilizables, le conviene colocar el js y el css al lado del componente. Para las aplicaciones, querrías solo un gran archivo js y un gran archivo css. –

+0

Excelente gracias. Creo que iré con la carpeta de aplicaciones web, ya que es solo un sitio de CSS que requeriré. –

3

En general, debe agregar su CSS en project/src/main/webapp/css y luego se accederá mediante css/conor.css

+0

Gracias por esta respuesta. Entre su contribución y Martijns, descubrí lo que necesitaba. –

2

Puede cargar sus archivos CSS en su página de java portillo así:

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

Si usted tiene unos archivos css en sus proyectos que se pueden cargar inicialmente.