OutputStyleSheet Example with JSF 2.0
Hello geeks, another quick ‘n easy example for today! In our last JSF example, we figured out how to manipulate an image insertion into a JSF application.
Ok, we now know how to implement this, but without CSS, it’s just another brick in our JSF wall. So, how could we include a css file into a JSF project? That’s what we are going to investigate today and especially we are going to see the best practice for it.
In JSF, we can use the <h:outputStylesheet />
tag to use an external css file.
For example, assume the following tag:
<h:outputStylesheet library="css" name="style.css" />
which is generated to the following HTML:
<link type="text/css" rel="stylesheet" href="/JavaServerFaces/faces/javax.faces.resource/style.css?ln=css" />
Best Practice Project Structure
According to best practices, we should place our css files under /resources/css
folder. Here is the corresponding project structure, just for demonstration:
And here is the JSF file:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" > <h:head></h:head> <h:body> <h1>JSF 2.2 OutputStyleSheet Example</h1> <h:outputStylesheet library="css" name="style.css" /> <div class="awesome_color">This sentence will be colored as described in the corresponding css. </div> </h:body> </html>
The fore-mentioned file will be automatically generated to an HTML format like:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link type="text/css" rel="stylesheet" href="/JavaServerFaces/faces/javax.faces.resource/style.css?ln=css" /> </head> <body> <h1>JSF 2.2 OutputStyleSheet Example</h1> <div class="awesome_color">This sentence will be colored as described in the corresponding css. </div> </body> </html>
Last Words
Yes, you did notice it right, I didn’t include anything between the JSF head
, I just left it as an empty tag and please try to do so (in case you don’t need anything in you page’s “head”). Otherwise, there is a serious case that your css file won’t be included.
Have a nice weekend!
This was an example of OutputStyleSheet in JSF 2.0.