OutputFormat Example with JSF 2.0
Hi there, have a nice and proactive week! Today we ‘ll extend a little bit our last example, just to make sure that we do make clear the difference between <h:outputText />
and <h:outputFormat />
.
Generally, the fore-mentioned JSF tags are similar, but the one that we ‘re going to talk today about, provides some extra functionality that enables a rendering of a parameterized message.
For example,
<h:outputFormat value="param0 : {0}, param1 : {1}" > <f:param value="Java Core" /> <f:param value="Java Enterprise Edition" /> </h:outputFormat>
will output something like param0 : Java Core, param1 : Java Enterprise Edition
.
1. Managed Bean
Now that we ‘re done with a general intro, let’s get into a more specific example. Here is the structure of our classic managed bean, which will provide some demonstration text:
UserBean.java
package com.javacodegeeks.enterprise.jsf.outputformat; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class UserBean implements Serializable{ private static final long serialVersionUID = 4256272866128337548L; public String text = "Hello {0}" ; public String htmlInput = "" ; public String getText() { return text; } public void setText(String text) { this.text = text; } public String getHtmlInput() { return htmlInput; } public void setHtmlInput(String htmlInput) { this.htmlInput = htmlInput; } }
2. View Page
index.xhtml
<?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" xmlns:f="http://java.sun.com/jsf/core" > <h:body> <h1>JSF 2.2 OutputFormat Example</h1> <ol> <li> <h:outputFormat value="Hello from param 0 : {0}, param 1 : {1}"> <f:param value="1st sample parameter" /> <f:param value="2nd sample parameter" /> </h:outputFormat> </li> <li> <h:outputFormat value="#{user.text}"> <f:param value="Thodoris Bais" /> </h:outputFormat> </li> <li> <h:outputFormat value="#{user.htmlInput}"> <f:param value="text" /> <f:param value="size='30' " /> </h:outputFormat> </li> <li> <h:outputFormat value="#{user.htmlInput}" escape="false"> <f:param value="text" /> <f:param value="size='30' " /> </h:outputFormat> </li> <li> <h:outputFormat value="#{user.htmlInput}" escape="false"> <f:param value="button" /> <f:param value="value='Click me' " /> </h:outputFormat> </li> </ol> </h:body> </html>
This will generate the following HTML format:
<?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" xmlns:f="http://java.sun.com/jsf/core" > <h:body> <h1>JSF 2.2 OutputFormat Example</h1> <ol> <li> this is param0 : 1st sample parameter, param1 : 2nd sample parameter </li> <li> Hello Thodoris Bais </li> <li> <input type="text" size='30' /> </li> <li> <input type="text" size='30' /> </li> <li> <input type="button" value='Click Me' /> </li> </ol> </h:body> </html>
3. Demo
Let’s have a quick look at our final product:
This was an example of OutputFormat in JSF 2.0. You can also download the source code for this example: OutputFormatJSF