<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>ViralPatel.net &#187; JavaServer Faces</title> <atom:link href="http://viralpatel.net/blogs/category/j2ee/jsf/feed" rel="self" type="application/rss+xml" /><link>http://viralpatel.net/blogs</link> <description>Tutorials, Java, J2EE, Struts, AJAX, JavaScript, CSS, Web 2.0, MySQL, Articles</description> <lastBuildDate>Tue, 24 Jan 2012 13:45:10 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>JavaServer Faces JSF Validation Tutorial: Error Handling in JSF</title><link>http://viralpatel.net/blogs/2009/02/javaserver-faces-jsf-validation-tutorial-error-handling-jsf-validator.html</link> <comments>http://viralpatel.net/blogs/2009/02/javaserver-faces-jsf-validation-tutorial-error-handling-jsf-validator.html#comments</comments> <pubDate>Fri, 27 Feb 2009 14:32:43 +0000</pubDate> <dc:creator>Viral Patel</dc:creator> <category><![CDATA[JavaServer Faces]]></category> <category><![CDATA[JSF Validators]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[validation framework]]></category><guid isPermaLink="false">http://viralpatel.net/blogs/?p=860</guid> <description><![CDATA[In continuation with my previous article on Creating JavaServer Faces JSF application in Eclipse, I am posting next article in the series. This time we will cover details about JSF Validation Model and Handling Errors in JSF. JavaServer Faces technology supports a mechanism for validating the data of editable components. Each component in JavaServer Faces, [...]]]></description> <content:encoded><![CDATA[<p><img src="http://img.viralpatel.net/jsf-validators-jsf-validation.gif" alt="jsf-validators-jsf-validation" title="jsf-validators-jsf-validation" width="191" height="155" class="alignright size-full wp-image-868" /><br /> In continuation with my previous article on <a href="http://viralpatel.net/blogs/2009/02/tutorial-creating-javaserver-faces-jsf-application-in-eclipse-jsf-project-jsf-tutorial.html"><strong>Creating JavaServer Faces JSF application in Eclipse</strong></a>, I am posting next article in the series. This time we will cover details about JSF Validation Model and Handling Errors in JSF.</p><p>JavaServer Faces technology supports a mechanism for validating the data of editable components. Each component in JavaServer Faces, created Error Messages during the life cycle of JSF and attached them to FacesContext object. Hence each message is attached to a component in the component tree and the message is displayed into the view at the end of JSF life cycle.</p><h2>Showing Error Messages on View</h2><p>JSF provides different tags to handle and display messages on the view. There are two message tags in SUN&#8217;s reference implementation of JSF HTML library:</p><pre class="brush: xml; title: ; notranslate">
&lt;h:message /&gt;
&lt;h:messages /&gt;
</pre><p>h:messages is used to display all messages at once. You can place h:messages tag in start of your form. You may need to display only global messages using h:messages tag. For displaying only global messages set <strong>globleOnly</strong> attribute of h:messages to true.</p><pre class="brush: xml; title: ; notranslate">
&lt;h:messages globalOnly=&quot;true&quot; /&gt;
</pre><p>Use h:message to display message attached to one component. An attibute <strong>for=&#8221;"</strong> can be used to specify the id of a component whose error messages we need to display. h:message is used to display error message next to the component that generated the error. If more then one message is attached to that component, h:message will display the last message.</p><pre class="brush: xml; title: ; notranslate">
...
&lt;h:inputText id=&quot;userName&quot; value=&quot;#{userBean.userName}&quot; /&gt;
&lt;h:message for=&quot;userName&quot; /&gt;
...
</pre><p>Each message can have a summary description and a detailed description. When using the h:message tag, the default is to show the detail message. When using the h:messages tag, the default is to display the summary descriptions. To change the defaults, modify the boolean <strong>showSummary</strong> and <strong>showDetail</strong> attributes.</p><pre class="brush: xml; title: ; notranslate">
&lt;h:message for=&quot;userName&quot; showSummary=&quot;true&quot;/&gt;
&lt;h:messages showDetail=&quot;true&quot;/&gt;
</pre><p>You can also enable component&#8217;s detail message to appear as a tooltip. To do so, set <strong>tooltip</strong> attribute of message tag to true. Note that for enabling this option, showDetail and showSummary must be set to true.</p><p>There are four forms of JSF validation:<br /> 1. Built-in validation components<br /> 2. Application level validations<br /> 3. Custom validation components using Validator interface<br /> 4. Validation methods in backing beans</p><h2>Built-in validation components</h2><p>The SUN&#8217;s reference implementation of JSF provides some default validation components that can be leveraged to implement validation of any user inputs. The JSF&#8217;s core library provides tags to validate input. Following are few tags that can be used to validate the input.</p><p><strong>f:validateDoubleRange</strong> : This tag checks the value of component within specified range. The value must be convertible to floating-point type or a floating-point itself.</p><p><strong>f:validateLength</strong> : This tag checks the length of a value and restrict it within a specified range. The value must be of type java.lang.String.</p><p><strong>f:validateLongRange</strong> : Checks is component value is within a specified range. The value must be of numeric type or string convertible to a long.<br /> <strong>Example:</strong></p><pre class="brush: xml; title: ; notranslate">
&lt;h:inputText id=&quot;Username&quot; value=&quot;#{UserBean.userName}&quot;&gt;
	&lt;f:validateLength minimum=&quot;6&quot; maximum=&quot;15&quot;/&gt;
&lt;/h:inputText&gt;
....
&lt;h:inputText id=&quot;Age&quot; value=&quot;#{UserBean.age}&quot;&gt;
	&lt;f:validateLongRange minimum=&quot;1&quot; maximum=&quot;120&quot;/&gt;
&lt;/h:inputText&gt;
</pre><h2>Validation using Backing Bean methods</h2><p>A backing bean method can be used for doing validation of any input field. First we need to create the backing bean method that will get called during validation process. The signature of the method can be:</p><pre class="brush: java; title: ; notranslate">
public void &lt;METHOD_NAME&gt; (FacesContext context, UIComponent component, Object value) { .. }
</pre><p>Once a backing bean method is ready we can bind it with a component using <strong>f:validator</strong> tag.</p><pre class="brush: xml; title: ; notranslate">
&lt;h:inputText value=&quot;#{userBean.name}&quot; validator=&quot;#{userBean.checkUsername}&quot;&gt;
&lt;/h:inputText&gt;
</pre><p>In above snippet, we have bind checkUsername() method of userBean to component inputText. It is possible to bind more than one validators to one component.</p><p>Backing bean method of validation is easy to implement, but this method is specific for one application and may not be reused for different application. To create generic validators which can be used in different application, Validator interface can be used.</p><h2>Custom validation components using Validator interface</h2><p>Validator interface can be extended and a custom validator can be created which can be reused across different applications in JSF. To create a custom validator, we need to create a Java class that implements <strong>javax.faces.validator.Validator</strong> interface. Validator interface provides a method validate () that needs to be implemented. Following is the signature of validate() method.</p><pre class="brush: java; title: ; notranslate">
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
...
...
public void validate(FacesContext context, UIComponent component, Object value)
		throws ValidatorException {
}
</pre><p>Once the Validator is implemented, we need to register this validator in faces-config.xml file. To do so copy following code in faces-config.xml assuming that our validator class name is net.viralpatel.jsf.helloworld.EmailValidator.</p><pre class="brush: xml; title: ; notranslate">
&lt;validator&gt;
	&lt;validator-id&gt;emailValidator&lt;/validator-id&gt;
	&lt;validator-class&gt;net.viralpatel.jsf.helloworld.EmailValidator&lt;/validator-class&gt;
&lt;/validator&gt;
</pre><p>We can bind this validator with any component using f:validator tag.</p><pre class="brush: xml; title: ; notranslate">
&lt;h:inputText id=&quot;Email&quot; value=&quot;#{userBean.email}&quot; required=&quot;true&quot;&gt;
	&lt;f:validator validatorId=&quot;emailValidator&quot; /&gt;
&lt;/h:inputText&gt;
</pre><p>Note that in above code snippet, validatorId attribute of f:validator tag points to the validator&#8217;s ID that is registered in faces-config.xml file.<br /> For validating email address we can create a Validator class as:</p><pre class="brush: java; title: ; notranslate">
package net.viralpatel.jsf.helloworld;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

public class EmailValidator implements Validator{
	public void validate(FacesContext context, UIComponent component, Object value)
			throws ValidatorException {

		String email = (String) value;

		if(!email.contains(&quot;@&quot;)) {
			FacesMessage message = new FacesMessage();
			message.setSeverity(FacesMessage.SEVERITY_ERROR);
			message.setSummary(&quot;Email is not valid.&quot;);
			message.setDetail(&quot;Email is not valid.&quot;);
			context.addMessage(&quot;userForm:Email&quot;, message);
			throw new ValidatorException(message);
		}
	}
}
</pre><p>Thus by using JSF Validation framework, it is possible to validate user input easily. We saw different ways of validation in JSF: Default validators, backing bean methods and validation through validator interface.</p><p>Let me know your comments about this tutorial.</p><p><strong><a href="http://viralpatel.net/blogs/2009/02/tutorial-creating-javaserver-faces-jsf-application-in-eclipse-jsf-project-jsf-tutorial.html">&lt;&lt; PREVIOUS: Tutorial: Creating JavaServer Faces JSF application in Eclipse.</a></strong></p><div id="relatedpost"><h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://viralpatel.net/blogs/2009/02/tutorial-creating-javaserver-faces-jsf-application-in-eclipse-jsf-project-jsf-tutorial.html" title="Tutorial: Creating JavaServer Faces JSF application in Eclipse">Tutorial: Creating JavaServer Faces JSF application in Eclipse</a></li><li><a href="http://viralpatel.net/blogs/2009/01/struts-validation-framework-tutorial-example-validator-struts-validation-form-validation.html" title="Struts Validation Framework Tutorial with example.">Struts Validation Framework Tutorial with example.</a></li><li><a href="http://viralpatel.net/blogs/2011/11/hibernate-hello-world-example-annotation.html" title="Hibernate Hello World example using Annotation">Hibernate Hello World example using Annotation</a></li><li><a href="http://viralpatel.net/blogs/2011/01/spring-roo-implement-masterdetail-forms.html" title="How to implement Master/Detail forms using Spring Roo">How to implement Master/Detail forms using Spring Roo</a></li><li><a href="http://viralpatel.net/blogs/2011/01/first-play-framework-gae-siena-application-tutorial-example.html" title="Your first Play! &#8211; GAE &#8211; Siena application: Tutorial with Example">Your first Play! &#8211; GAE &#8211; Siena application: Tutorial with Example</a></li><li><a href="http://viralpatel.net/blogs/2010/06/tutorial-spring-3-mvc-introduction-spring-mvc-framework.html" title="Spring 3 MVC – Introduction to Spring 3 MVC Framework">Spring 3 MVC – Introduction to Spring 3 MVC Framework</a></li><li><a href="http://viralpatel.net/blogs/2010/01/tutorial-struts2-hibernate-example-eclipse.html" title="Tutorial: Create Struts2 Hibernate Example in Eclipse">Tutorial: Create Struts2 Hibernate Example in Eclipse</a></li></ul></div>]]></content:encoded> <wfw:commentRss>http://viralpatel.net/blogs/2009/02/javaserver-faces-jsf-validation-tutorial-error-handling-jsf-validator.html/feed</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Tutorial: Creating JavaServer Faces JSF application in Eclipse</title><link>http://viralpatel.net/blogs/2009/02/tutorial-creating-javaserver-faces-jsf-application-in-eclipse-jsf-project-jsf-tutorial.html</link> <comments>http://viralpatel.net/blogs/2009/02/tutorial-creating-javaserver-faces-jsf-application-in-eclipse-jsf-project-jsf-tutorial.html#comments</comments> <pubDate>Tue, 17 Feb 2009 11:17:01 +0000</pubDate> <dc:creator>Viral Patel</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[JavaServer Faces]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[validation framework]]></category><guid isPermaLink="false">http://viralpatel.net/blogs/?p=817</guid> <description><![CDATA[Let us see how to create a simple application using JavaServer Faces or JSF framework in Eclipse IDE. First let us see what are the tools required to create our hello world JSF application. JDK 1.5 above (download) Tomcat 5.x above or any other container (Glassfish, JBoss, Websphere, Weblogic etc) (download) Eclipse 3.2.x above (download) [...]]]></description> <content:encoded><![CDATA[<p>Let us see how to create a simple application using JavaServer Faces or JSF framework in Eclipse IDE. First let us see what are the tools required to create our hello world JSF application.</p><ol><li>JDK 1.5 above (<a href="http://java.sun.com/javase/downloads/index.jsp">download</a>)</li><li>Tomcat 5.x above or any other container (Glassfish, JBoss, Websphere, Weblogic etc) (<a href="http://tomcat.apache.org/download-55.cgi">download</a>)</li><li>Eclipse 3.2.x above (<a href="http://www.eclipse.org/downloads/">download</a>)</li><li>Sun Reference Implementation of JSF: (<a href="http://java.sun.com/javaee/javaserverfaces/download.html">download</a>). Following are the list of JAR files required for this application.<ul><li>jsf-impl.jar</li><li>jsf-api.jar</li><li>jstl.jar</li><li>common-logging.jar</li><li>common-beanutils.jar</li><li>common-collections.jar</li><li>common-chain.jar</li><li>common-digester.jar</li></ul></li></ol><p>We will implement a JSF application with an Add User screen with two fields, ID and User Name. Once user enter these values and press submit, she will be redirected to a welcome page displaying the user name.</p><p>Let us start with our first JSF based web application.</p><h2>Step 1: Create Dynamic Web project</h2><p>Open Eclipse and goto File -> New -> Project and select <strong>Dynamic Web Project</strong> in the New Project wizard screen.<br /> <img src="http://img.viralpatel.net/2008/12/eclipse-new-project-struts-example.png" alt="dynamic web project eclipse" class="aligncenter size-full" /></p><p>Select Dynamic Web application and click <strong>Next</strong>.<br /> <img src="http://img.viralpatel.net/create-dynamic-web-project-jsf.png" alt="create dynamic web project jsf" title="create-dynamic-web-project-jsf" width="358" height="453" class="aligncenter size-full wp-image-818" /></p><p>Write the name of the project <strong>HelloWorldJSF</strong>. Once this is done, select the target runtime environment (e.g. Apache Tomcat v6.0). This is to run the project inside Eclipse environment. In configuration select <strong>JavaServer Faces v1.2 Project</strong> and press <strong>Next</strong>.<br /> <br /> <img src="http://img.viralpatel.net/jsf-new-project.png" alt="jsf-new-project" title="jsf-new-project" width="368" height="453" class="aligncenter size-full wp-image-820" /></p><p>On Project Facets window, select Java 5 and JSF 1.2 and press Next.</p><p>Skip Web module window and press Next.</p><p><img src="http://img.viralpatel.net/jsf-capabilities-face-servlet.png" alt="jsf-capabilities-face-servlet" title="jsf-capabilities-face-servlet" width="461" height="616" class="aligncenter size-full wp-image-819" /></p><p>Select JSF component library. Click New in Component Libraries and add <strong>jstl.jar</strong>, <strong>jsf-api.jar</strong> and <strong>jsf-impl.jar</strong>. In URL Mapping Patterns add <strong>/faces/*</strong> and then click <strong>Finish</strong>.</p><p>Once the project is created, you can see its structure in Project Explorer.<br /> <img src="http://img.viralpatel.net/jsf-project-explorer-view.png" alt="jsf-project-explorer-view" title="jsf-project-explorer-view" width="175" height="157" class="aligncenter size-full wp-image-821" /></p><h2>Step 2: Create Package and Managed bean</h2><p>Create a package <strong>net.viralpatel.jsf.helloworld</strong> in the source folder and create a Java file <strong>UserBean.java</strong>. Copy following content into UserBean.java.</p><pre class="brush: java; title: ; notranslate">
package net.viralpatel.jsf.helloworld;

public class UserBean {
	private int id;
	private String name;

	//Action method to add user
	public String addUser() {

		return &quot;success&quot;;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
</pre><p>Above Java class is a User bean that we will use to store our user&#8217;s information. This class acts like a form bean and action class. The <strong>addUser()</strong> method will get called when we click Add button on our Add User page.</p><h2>Step 3: Create JSP files</h2><p>Create two JSP files: AddUser.jsp and ListUser.jsp in WebContent folder. Copy following content in each of these files.</p><h3>AddUser.jsp</h3><p></p><pre class="brush: xml; title: ; notranslate">
&lt;%@taglib uri=&quot;http://java.sun.com/jsf/core&quot; prefix=&quot;f&quot;%&gt;
&lt;%@taglib uri=&quot;http://java.sun.com/jsf/html&quot; prefix=&quot;h&quot;%&gt;

&lt;html&gt;
&lt;head&gt;
	&lt;title&gt;Add New User Form&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;f:view&gt;
		&lt;p&gt;
			&lt;h:message id=&quot;errors&quot; for=&quot;User_ID&quot; style=&quot;color:red&quot;/&gt;
		&lt;/p&gt;
	&lt;h:form&gt;
		&lt;h:panelGrid border=&quot;1&quot; columns=&quot;2&quot;&gt;
			&lt;h:outputText value=&quot;ID&quot;&gt;&lt;/h:outputText&gt;
			&lt;h:inputText id=&quot;User_ID&quot; value=&quot;#{userBean.id}&quot; required=&quot;true&quot;&gt;
				&lt;f:validateLongRange minimum=&quot;1&quot; maximum=&quot;500&quot;/&gt;
			&lt;/h:inputText&gt;
			&lt;h:outputText value=&quot;Name&quot;&gt;&lt;/h:outputText&gt;
			&lt;h:inputText value=&quot;#{userBean.name}&quot;&gt;&lt;/h:inputText&gt;
			&lt;h:commandButton action=&quot;#{userBean.addUser}&quot;
				value=&quot;Add Customer&quot;&gt;&lt;/h:commandButton&gt;
		&lt;/h:panelGrid&gt;
	&lt;/h:form&gt;
&lt;/f:view&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre><p>We have added a validation rule for ID using f:validateLongRange tag and required=&#8221;true&#8221; attribute. The ID must be in between 1 and 500.</p><h3>ListUser.jsp</h3><pre class="brush: xml; title: ; notranslate">
&lt;%@taglib uri=&quot;http://java.sun.com/jsf/core&quot; prefix=&quot;f&quot;%&gt;
&lt;%@taglib uri=&quot;http://java.sun.com/jsf/html&quot; prefix=&quot;h&quot;%&gt;

&lt;html&gt;
&lt;head&gt;
	&lt;title&gt;List of Users&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;f:view&gt;
	&lt;h:form&gt;
		&lt;h:outputText value=&quot;User #{userBean.name} is added successfully.&quot;&gt;
		&lt;/h:outputText&gt;
	&lt;/h:form&gt;
&lt;/f:view&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre><h2>Step 4: Modify faces-config.xml file</h3><p>Open faces-config.xml from WebContent -> WEB-INF folder and copy following content into it.</p><pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;faces-config xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;
	xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd&quot;
	version=&quot;1.2&quot;&gt;
	&lt;managed-bean&gt;
		&lt;managed-bean-name&gt;userBean&lt;/managed-bean-name&gt;
		&lt;managed-bean-class&gt;
			net.viralpatel.jsf.helloworld.UserBean
		&lt;/managed-bean-class&gt;
		&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
	&lt;/managed-bean&gt;
	&lt;navigation-rule&gt;
		&lt;display-name&gt;AddUser&lt;/display-name&gt;
		&lt;from-view-id&gt;/AddUser.jsp&lt;/from-view-id&gt;
		&lt;navigation-case&gt;
			&lt;from-outcome&gt;success&lt;/from-outcome&gt;
			&lt;to-view-id&gt;/ListUser.jsp&lt;/to-view-id&gt;
		&lt;/navigation-case&gt;
	&lt;/navigation-rule&gt;
&lt;/faces-config&gt;
</pre><p>In faces config we have defined a managed bean UserBean with scope session and mapping from AddUser.jsp to ListUser.jsp.</p><h2>Step 5: Execute and run the project</h2><p>Final step is to execute the project and view it in browser.<br /> For this, right click on Project Name in Project Explorer -> Run As -> Run on Server (Shortcut Alt+Shift+X, R).<br /> <br /> <img src="http://img.viralpatel.net/add-new-user-jsf-project-eclipse.png" alt="add-new-user-jsf-project-eclipse" title="add-new-user-jsf-project-eclipse" width="485" height="294" class="aligncenter size-full wp-image-823" /></p><p>Once you enter ID and Username and press Add User, following success screen will appear.</p><p><img src="http://img.viralpatel.net/add-user-success-jsf-project-eclipse.png" alt="add-user-success-jsf-project-eclipse" title="add-user-success-jsf-project-eclipse" width="485" height="294" class="aligncenter size-full wp-image-824" /></p><h2>Download complete WAR file with source</h2><p><a href="http://viralpatel.net/blogs/download/jsf/HelloWorldJSF.war">Download WAR with Source (1.48 MB)</a></p><p><a href="http://viralpatel.net/blogs/2009/02/javaserver-faces-jsf-validation-tutorial-error-handling-jsf-validator.html"><strong>Next &gt;&gt; JavaServer Faces JSF Validation Tutorial: Error Handling in JSF.</strong></a></p><div id="relatedpost"><h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://viralpatel.net/blogs/2009/02/javaserver-faces-jsf-validation-tutorial-error-handling-jsf-validator.html" title="JavaServer Faces JSF Validation Tutorial: Error Handling in JSF">JavaServer Faces JSF Validation Tutorial: Error Handling in JSF</a></li><li><a href="http://viralpatel.net/blogs/2010/06/tutorial-spring-3-mvc-introduction-spring-mvc-framework.html" title="Spring 3 MVC – Introduction to Spring 3 MVC Framework">Spring 3 MVC – Introduction to Spring 3 MVC Framework</a></li><li><a href="http://viralpatel.net/blogs/2009/01/struts-validation-framework-tutorial-example-validator-struts-validation-form-validation.html" title="Struts Validation Framework Tutorial with example.">Struts Validation Framework Tutorial with example.</a></li><li><a href="http://viralpatel.net/blogs/2008/12/tutorial-creating-struts-application-in-eclipse.html" title="Tutorial: Creating Struts application in Eclipse">Tutorial: Creating Struts application in Eclipse</a></li><li><a href="http://viralpatel.net/blogs/2011/11/hibernate-hello-world-example-annotation.html" title="Hibernate Hello World example using Annotation">Hibernate Hello World example using Annotation</a></li><li><a href="http://viralpatel.net/blogs/2011/01/spring-roo-implement-masterdetail-forms.html" title="How to implement Master/Detail forms using Spring Roo">How to implement Master/Detail forms using Spring Roo</a></li><li><a href="http://viralpatel.net/blogs/2011/01/first-play-framework-gae-siena-application-tutorial-example.html" title="Your first Play! &#8211; GAE &#8211; Siena application: Tutorial with Example">Your first Play! &#8211; GAE &#8211; Siena application: Tutorial with Example</a></li></ul></div>]]></content:encoded> <wfw:commentRss>http://viralpatel.net/blogs/2009/02/tutorial-creating-javaserver-faces-jsf-application-in-eclipse-jsf-project-jsf-tutorial.html/feed</wfw:commentRss> <slash:comments>38</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: viralpatel.net @ 2012-02-09 03:03:21 -->
