For resources that make good candidates for caching, like images and CSS files,
it's worth looking at using a servlet that overrides getLastModified.
Obligatory JSTL plug:

<%@ page contentType="text/css" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"; %>

.cssMainBody {
  background-color : <c:out value="${styleData.backgroundColor}"/>;
  color : <c:out value="${styleData.textColor}"/>;
  font-family : <c:out value="${styleData.fontFamily}"/>;
  font-size : <c:out value="${styleData.fontSize}"/>;
  font-weight : <c:out value="${styleData.fontWeight}"/>;
}

Even better with JSP2.0:

<%@ page contentType="text/css" %>

.cssMainBody {
  background-color : ${styleData.backgroundColor};
  color : ${styleData.textColor};
  font-family : ${styleData.fontFamily};
  font-size : ${styleData.fontSize};
  font-weight : ${styleData.fontWeight};
}

Quoting Frank Zammetti <[EMAIL PROTECTED]>:

> I don't at present use any taglibs whatsoever in the app I'm doing this in, 
> so I don't know if there is any added complexity involved there.  But as far
> 
> as what I AM doing goes, I'm not sure what will really be helpful, so let me
> 
> get as detailed as I can and you can ignore the superfolous parts...
> 
> First, the application I'm doing this in allows users to set their own color
> 
> scheme, font scheme, and some other style elements (within a defined set of 
> things they can possibly change).  So, I have a UserScheme table with 
> columns like BackgroundColor, FontSize, TextColor, etc.
> 
> So, in each JSP I have the line:
> 
> <link rel="StyleSheet" href="/app/styles.act" type="text/css">
> 
> This is mapped to an Action called StylesAction.  All it does is reads in 
> all the columns from the above table for the current user.  I then dump all 
> those values into a HashMap (I simply key it off the column name in the 
> table).
> 
> Next, in the styles.jsp, I do things like this:
> 
> <% HashMap styleData = (HashMap)request.get("styleData"); %>
> .cssMainBody {
>   background-color : <%=(String)styleData.get("backgroundColor")%>;
>   color : <%=(String)styleData.get("textColor")%>;
>   font-family : <%=(String)styleData.get("fontFamily")%>;
>   font-size : <%=(String)styleData.get("fontSize")%>;
>   font-weight : <%=(String)styleData.get("fontWeight")%>;
> }
> 
> ...and so on.  Then, I just use those style classes  in my other JSP's like 
> I would any other style tag (I always do className="xxx" where xxx is the 
> classname like cssMainBody above).
> 
> That's all there is to it.  Without knowing more about the taglibs your 
> using I can't really say if this will work as-is or not, but it certainly 
> works were taglibs are not involved.  Hope that helps!
> 
> Frank
> 
> >From: "Voinea, Marina" <[EMAIL PROTECTED]>
> >Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> >To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> >Subject: RE: How to use dynamically generated CSS style with Struts tags
> >Date: Wed, 23 Jun 2004 10:06:32 -0400
> >
> >
> >Thank you very much for your answer, Frank,This is the second time you come
> 
> >to my help!
> >
> >I don't want to seem lazy, but could you please give an example from the 
> >code...
> >(the style sheet jsp and an example of a tag , for ex: html:text or 
> >anything else which is using the info from the syle sheet : do you use JSTL
> 
> >or Struts tags are enough?
> >  (
> >(I am curious how you pass info from the jsp stylesheet to the style and 
> >styleCLass attibutes of the STruts html tag....
> >
> >  I am just starting this, so I am sure I'll benefit from your proven 
> >experience...(instead of fighting my mistakes for a couple of days)
> >
> >
> >  ALso, regarding performance: do you think there is a significant 
> >performance hit to generate the styles inline in the tags (there are some 
> >concerns here...), as opposed to using a style sheet file 
> >(generated/refreshed from time to time and maybe cashed in the browser...).
> 
> >The tags are dynamically generated anyway, so I'm thinking additional style
> 
> >at run time may not be that bad, what do you think? Did you do any 
> >comparisons/benchmarks?
> >
> >
> >Thank you very much,
> >Marina
> >
> >-----Original Message-----
> >From: Frank Zammetti [mailto:[EMAIL PROTECTED]
> >Sent: Tuesday, June 22, 2004 1:53 PM
> >To: [EMAIL PROTECTED]
> >Subject: Re: How to use dynamically generated CSS style with Struts tags
> >
> >
> >I had to do something almost identical... My solution was to make my CSS
> >file a JSP, and when I referenced that stylesheet in all the other JSP's, I
> >did:
> >
> >
> >where styles.act is actually an ActionMapping.  I then had my StylesAction
> >class, just like any other Action, that got some info out of the database
> >and passed it along to the JSP, then I just used all the normal JSP/taglib
> >functionality to dynamically build the CSS content.
> >
> >Frank
> >
> > >From: Bill Siggelkow <[EMAIL PROTECTED]>
> > >Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> > >To: [EMAIL PROTECTED]
> > >Subject: Re: How to use dynamically generated  CSS style with Struts tags
> > >Date: Tue, 22 Jun 2004 13:28:47 -0400
> > >
> > >Sounds like a custom JSP tag would work pretty well here ...
> > >
> > >Voinea, Marina wrote:
> > >
> > >>
> > >>Hi everybody,
> > >>Can you please help with the following question:
> > >>
> > >>   What are the possible ways (and best) to modify the style sheet at 
> >run
> > >>time using Struts framework?
> > >>  Our application is  using Struts tags which refer to a static style
> > >>sheet elements as presented below:
> > >>
> > >>  <html-el:link styleClass="<%=style%>" ....
> > >>
> > >>  We need at run time to extract user settings from DB (fonts, colors) 
> >and
> > >>generate a style sheet accordingly .
> > >>   We could generate the style sheet text file for the user and store it
> > >>somewhere on the disk and then refer to it, but then we may have too 
> >many
> > >>files (for all active users). There must be a more dynamic and elegant
> > >>soultion...
> > >>   Can we use the Struts html:link and pass a String to the "style"
> > >>attribute of the html:link of the tag ? (It would be good for this 
> >string
> > >>to be extracted from a bean prepared by an action....).
> > >>
> > >>   Any example of XSL taglib and Struts tag integration ?   This is a 
> >very
> > >>important element for trully dynamic pages ... Any good experience that 
> >we
> > >>can learn from?
> > >>
> > >>
> > >>   Thank you very much,
> > >>   Marina

-- 
Kris Schneider <mailto:[EMAIL PROTECTED]>
D.O.Tech       <http://www.dotech.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to