JSF Properties - Using Properties files in JSF

Complete Java Server Faces (JSF) Tutorial - JSF Tutorials. JSF Tutorials at Rose India covers everything you need to know about JSF.

JSF Properties - Using Properties files in JSF

JSF Properties - Using Properties files in JSF

        

Complete Java Server Faces (JSF) Tutorial - JSF Tutorials. JSF Tutorials at Rose India covers everything you need to know about JSF.

In this section you will learn how to use properties file in JSF applications to display the message from message source files. We will use the application developed in the last section and modify the application to use properties files.

We will modify the jsp files and add a new message.properties file to the project. Here are the steps to use the properties file in the JSF project.

Create Message Resource file

Create "messages.properties" and save it in "WEB-INF\src\java\net\roseindia" directory. Add the following content to the file:
title=Enter your name page
welcome=Welcome
header=JSF 1.2 Tutorials
your_name=Enter Your Name:
button_text_ok=OK
Welcome=Welcome
jsf_world= to JSF 1.2 World!
Above file defines the various properties to be used in the forms.

JSF Modification

Modify the code of "inputname.jsp" file to use the message resource bundle. Here is code of final file:

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:loadBundle basename="net.roseindia.messages" var="msg"/>

<html>
<head>
<title>Input Form</title>
</head>
<body>
<f:view>
<h1>
<h:outputText value="#{msg.header}"/>
</h1>
<h:form id="UserEntryForm">
<h:outputText value="#{msg.your_name}"/>
<h:inputText value="#{UserBean.userName}" />
<h:commandButton action="welcome" value="#{msg.button_text_ok}" />
</h:form>
</f:view>
</body>
</html> 

 The code <f:loadBundle basename="net.roseindia.messages" var="msg"/> loads the messages from messages.properties. 

The <f:loadBundle /> tag is used to load the recourse bundle and store it as a map in the request scope. This allows you to access the message in your JSF. There are two attributes for this tag "basename" and "var". "basename" is the base name where the bundle is present and "var" represents the name by which the we will refer this bundle in our jsf page.

 Now modify the code of "welcome.jsp" file. The final code is as follows:

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:loadBundle basename="net.roseindia.messages" var="msg"/>
<html>
<head>
<title>Welcome</title>
</head> 
<body>
<f:view>
<h3>
<h:outputText value="#{msg.welcome}"/>,
<h:outputText value="#{UserBean.userName}" />&nbsp; <h:outputText value="#{msg.jsf_world}"/>
</h3>
</f:view>
</body> 
</html>

Now the application is ready and you can test.

Download the full code of finished application