You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by Apache Wiki <wi...@apache.org> on 2007/01/24 14:03:35 UTC

[Myfaces Wiki] Update of "Style Sheet" by MarioIvankovits

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Myfaces Wiki" for change notification.

The following page has been changed by MarioIvankovits:
http://wiki.apache.org/myfaces/Style_Sheet

------------------------------------------------------------------------------
  <f:view>
    <t:document>
      <t:documentHead>
-       <t:stylesheet path="#{applicationSkin.stylesheet"">
+       <t:stylesheet path="#{applicationSkin.stylesheet}">
      </t:documentHead>
      ....
    <t:document>
@@ -21, +21 @@

   * EL can be used, as in the example above.  By getting the stylesheet from a managed bean, it can be set, and changed, at runtime to allow the user interface to dynamically be ''skinned''.
   * Stylesheet must start with a slash, i.e. {{{/stylesheet.css}}} or be a fully qualified url, i.e. {{{http://foo.com/stylesheet.css}}}
  
+ 
+ ==== filtered stylesheet ===
+ 
+ {{{
+ <f:view>
+   <t:document>
+     <t:documentHead>
+       <t:stylesheet path="/context/path/to/stylesheet.css" filtered="true">
+     </t:documentHead>
+     ....
+   <t:document>
+ </f:view>
+ }}}
+ 
+ The filtered attribute allows you to direct the tag to filter the real stylesheet and replace every EL string within.
+ 
+ One use case .... hmmm ... the only one I had in mind when doing this enhancement is to keep the context path for background-images dynamic.
+ 
+ Given your stylesheet.css contains the following text
+ 
+ {{{
+ .tableBack
+ {
+ 	background-image: url(#{environmentInfo.requestContextPath}/images/logo.jpg)
+ }
+ }}}
+ 
+ and you have configured a managed bean called "environmentInfo" the EL will be replaced by the return value of the beans method. (Notice: A simple .toString() will be issued on the return value as JSF do not allow to use converters without an component).
+ 
+ The filtering will happen only on the first access of the stylesheet. Any subsequent access will just deliver a cached result. Means: You can not interweave any request specific stuff in your stylesheet. This make no sense as then you can simply embed the stylesheet into the page.
+