In JSF 2.2 you have the ability to define a resource library contract so you can deliver a different experience on the basis of which user visits your website. This blog entry shows you how you can switch between a resource library contract on the basis of an EL expression.
To show this off we define 2 CSS styles, blue and red.
body { background-color: blue; }
body { background-color: red; }
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Resource Library Contract f:view sample</title> </h:head> <h:body> <h1>Resource Library Contract f:view sample</h1> <ul> <li><a href="#{facesContext.externalContext.requestContextPath}/faces/viewrlc.xhtml?contract=blue">Blue contract</a></li> <li><a href="#{facesContext.externalContext.requestContextPath}/faces/viewrlc.xhtml?contract=red">Red contract</a></li> </ul> </h:body> </html>
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <f:view contracts="#{param.contract}"> <h:head> <title>Resource Library Contract</title> <h:outputStylesheet name="style.css"/> </h:head> <h:body> <h:form> <p> The color is coming from a resource library contract. </p> </h:form> </h:body> </f:view> </html>
Posted November 14, 2013