PDA

Ver la versión completa : Modificar CSS



luis9rs
07-01-2011, 12:52
Hola, tengo una aplicacion web java, en la que me gustaria que el usuario pudiera personalizar el color del fondo, letra, y logotipo de la pagina. Quisiera saber si se puede modificar las hojas de estilo desde las JSP, para no tener que hacer la consulta a la base de datos en cada pagina de la aplicacion web y en funcion de esa consulta poner esos paramentros mediante style="...", sino simplemente modificar de una vez el CSS, y cargarlo con normalidad en cada pagina. ¿Alguien sabe si se puede hacer?

hystd
07-01-2011, 15:28
No sé si se podrá... Si se puede, yo no sé cómo! Pero puedes hacer una cosa, y es que en tu CSS creas las clases correspondientes (TODAS las que vayas a necesitar), y luego, en tu JSP, en función de lo que valgan los parámetros, pues asignas una clase u otra mediante el atributo "class" de las etiquetas.

No sé si me he explicado, si no, dimelo y lo explico mejor.

Un saludo.

luis9rs
07-01-2011, 15:51
Si, creo que se como quieres decir. Pero, ¿ eso no sería algo asi como usar el atributo style y poner el estilo ? Es decir, yo lo quería era eviatar que en cada pagina tenga que hacer una consulta a la base de datos para saber que estilo hay que aplicar, y de esa forma, utilizo una clase u otra de mi CSS, pero igualmente tengo que hacer una consulta a la base de datos en cada pagina, ¿no es así?
¿Puedes ponerme un ejemplo para saber si te entendido bien?

hystd
07-01-2011, 21:04
Ok, ok, perdona, pero soy yo el que no te había entendido bien desde el principio...

Bien, pues para tu problema supongo que tienes lo siguiente:

1º Una JSP que será la que genere el HTML que el usuario verá al final.
2º Una tabla en tu BD con los estilos que el usuario ha configurado, o un valor o valores que identifican de alguna manera un estilo o tema prefijado por cada usuario.

Si es así, se me ocurre que en tu JSP puedes hacer la consulta en función de la configuración del usuario en sesión que la visita, y de la base de datos, recuperas los estilos de ese usuario.

Una vez los tienes, tu JSP debe generar un fichero css dinámicamente con los datos devueltos de la BD, y adjuntarlo en la cabecera:

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

Donde estiloUsuarioX.css es el fichero CSS generado dinámicamente en tu JSP y contiene las clases, atributos y valores específicos de ese usuario, recuperados de la BD.

Ahora bien, para conservar el estilo en el resto de páginas que el usuario visite, puedes hacerlo mediante el uso de cookies. Creas una cookie para el usuario en sesión, y ahora en cada página compruebas la existencia de dicha cookie, si existe, asignas el estilo, si no, cargas el estilo por defecto.

Esto lo llevas a cabo añadiendo código javascript en el evento onload de cada página, y desde aquí, modificas el atributo href de la css, con el correspondiente al del usuario. Perno nota que todo esto ya lo haces desde javascript, en ningún momento vuelves a hacer una consulta la base de datos, pues la información ya la tienes almacenada en la cookie.

Supongo que esta forma es la más intuitiva.

Un saludo.

luis9rs
08-01-2011, 01:56
Exacto!! Eso es exactamente a lo que me refiero. Muchisimas gracias!!. Pero lo que no se hacer es generar una hoja de estilos dinamicamente.