Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Java EE 7 Web Application Development
Java EE 7 Web Application Development

Java EE 7 Web Application Development: Develop Java enterprise applications to meet the emerging digital standards using Java EE 7

eBook
€35.99 €40.99
Paperback
€50.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Java EE 7 Web Application Development

Chapter 2. JavaServer Faces Lifecycle

 

"No two people on earth are alike, and it's got to be that way in music or it isn't music"

 
 --Billie Holiday

Java has been a complete success in the server side for a long time: since the year 2000. Businesses have trusted the JVM, Java programming language, and abundance of frameworks as their platform of choice for enterprise software. So, are we correct in continuing to put our trust in the JVM as digital web engineers? I think the answer to that question, and because you are reading this book, is yes!

This chapter is an expansive overview of the JavaServer Faces (JSF) concepts. We will start with the history and purpose of JSF and how it relates to the fundamental design pattern: the Model-View-Controller (MVC). We will explore the life cycle concepts in JSF, which is one of the key concepts that separates it from the other Java web application frameworks. Moreover, we will examine some JSF code, including...

Introduction to JSF

JSF is a specification to build a web user interface from a component model. It encompasses a MVC and templating framework. JSF is a standard library of the Java EE platform. The Java Community Process (JCP) controls the specifications, and the current version is JSF 2.2, which is defined by Java Specification Request (JSR) 334 (https://www.jcp.org/en/jsr/detail?id=344).

Originally, the promise behind JSF was to bring rapid user interface development to server-side Java. This statement was true when JSF was first conceived; but of course, it is still useful if you would rather not write a lot of JavaScript code and hand crafted boilerplate so as to handle the transformation of an HTTP request to the Java invocations and back-to-page responses. Web technology and, in particular, digital development has leaped off the web pages since JSF 1.0 was conceived in 2004. Back then, JavaScript was not taken as a programming language so seriously as it is now; there was no responsive...

The MVC design pattern

The MVC design describes a set of design patterns that aim to separate the concerns of a user interface from the application logic that semantically binds them. The Model describes the business logic. The View denotes the presentation—the abstract surface that the user senses and also interacts with. The Controller denotes the component that handles the interaction between the model and view. The original idea of MVC stemmed from Trygve Reenskaug, who introduced the concept in the Smalltalk programming language during the 1970s. The pattern was subsequently implemented and popularized in the Smalltalk-80 before it was adopted in the wider software engineering community. MVC is famous for its ideas about the division of labor and the separation of responsibilities between the components.

We call it MVC patterns because the plural term describes a set of related derivatives of the classic pattern as group patterns.

The MVC pattern has subsequently evolved, giving...

Facelets

The JSF specification defines a View Declaration Language (VDL) to render the output of the pages. In JSF 1.0, this was JavaServer Pages; but in JSF 2.0, the VDL was changed to Facelets by default. Facelets are the default view handler for JSF 2.0 and are defined as XHTML files.

Facelets can be used in a templating situation. A Facelets file can reference a master template as a composition, and the view can provide the content that will look like a cookie cutter being supplied to the template. A Facelet that utilizes a reference template is known as a template client. The placeholder content in the template client will override the default content in the master template. In this way, Facelets can be reused in order to share the content. The template clients may become master templates and thus, a hierarchy of views can be derived.

Facelets also provide reuse by the custom tags. It is possible for engineers to write their own custom tags through the XHTML files and metadata. The designer...

The request processing lifecycle

JSF has a request-response processing lifecycle that is built around the HTTP protocol. JSF is built on top of the Java Servlet specification that takes care of translating the request user agent, which in the majority of the cases, is a web browser to a known endpoint. For JSF, the first port of call is javax.faces.webapp.FacesServlet. This servlet will simply dispatch the incoming request to the controller, and this component can elect to generate a response or delegate the output to the internal JSF controller implementation.

There are three circumstances for JSF in the request processing lifecycle. The first is the invocation to the JSF controller with a Faces request, which ultimately generates a Faces response.

The second is a request to retrieve a resource such as a CSS or JavaScript file or image or some other media file. However, a Faces resource request, which does not require the execution of logic, causes the JSF framework to furnish the output...

A basic JSF example

We have covered just enough theory on the JSF framework. I think it is time for my readers to see some code. The first code is the XHTML file to display a basic web page on a site. The source code is available on the book's website in the author's public GitHub account at http://github.com/peter_pilgrim/digital_javaee7.

Here is the XHTML source code for the initial Facelets view, and the file is called 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://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

  <h:head>
    <title>Digital Java EE 7 - Sample JSF</title>
  </h:head>
  <h:body...

Introduction to JSF


JSF is a specification to build a web user interface from a component model. It encompasses a MVC and templating framework. JSF is a standard library of the Java EE platform. The Java Community Process (JCP) controls the specifications, and the current version is JSF 2.2, which is defined by Java Specification Request (JSR) 334 (https://www.jcp.org/en/jsr/detail?id=344).

Originally, the promise behind JSF was to bring rapid user interface development to server-side Java. This statement was true when JSF was first conceived; but of course, it is still useful if you would rather not write a lot of JavaScript code and hand crafted boilerplate so as to handle the transformation of an HTTP request to the Java invocations and back-to-page responses. Web technology and, in particular, digital development has leaped off the web pages since JSF 1.0 was conceived in 2004. Back then, JavaScript was not taken as a programming language so seriously as it is now; there was no responsive...

The MVC design pattern


The MVC design describes a set of design patterns that aim to separate the concerns of a user interface from the application logic that semantically binds them. The Model describes the business logic. The View denotes the presentation—the abstract surface that the user senses and also interacts with. The Controller denotes the component that handles the interaction between the model and view. The original idea of MVC stemmed from Trygve Reenskaug, who introduced the concept in the Smalltalk programming language during the 1970s. The pattern was subsequently implemented and popularized in the Smalltalk-80 before it was adopted in the wider software engineering community. MVC is famous for its ideas about the division of labor and the separation of responsibilities between the components.

We call it MVC patterns because the plural term describes a set of related derivatives of the classic pattern as group patterns.

The MVC pattern has subsequently evolved, giving rise...

Facelets


The JSF specification defines a View Declaration Language (VDL) to render the output of the pages. In JSF 1.0, this was JavaServer Pages; but in JSF 2.0, the VDL was changed to Facelets by default. Facelets are the default view handler for JSF 2.0 and are defined as XHTML files.

Facelets can be used in a templating situation. A Facelets file can reference a master template as a composition, and the view can provide the content that will look like a cookie cutter being supplied to the template. A Facelet that utilizes a reference template is known as a template client. The placeholder content in the template client will override the default content in the master template. In this way, Facelets can be reused in order to share the content. The template clients may become master templates and thus, a hierarchy of views can be derived.

Facelets also provide reuse by the custom tags. It is possible for engineers to write their own custom tags through the XHTML files and metadata. The designer...

The request processing lifecycle


JSF has a request-response processing lifecycle that is built around the HTTP protocol. JSF is built on top of the Java Servlet specification that takes care of translating the request user agent, which in the majority of the cases, is a web browser to a known endpoint. For JSF, the first port of call is javax.faces.webapp.FacesServlet. This servlet will simply dispatch the incoming request to the controller, and this component can elect to generate a response or delegate the output to the internal JSF controller implementation.

There are three circumstances for JSF in the request processing lifecycle. The first is the invocation to the JSF controller with a Faces request, which ultimately generates a Faces response.

The second is a request to retrieve a resource such as a CSS or JavaScript file or image or some other media file. However, a Faces resource request, which does not require the execution of logic, causes the JSF framework to furnish the output...

A basic JSF example


We have covered just enough theory on the JSF framework. I think it is time for my readers to see some code. The first code is the XHTML file to display a basic web page on a site. The source code is available on the book's website in the author's public GitHub account at http://github.com/peter_pilgrim/digital_javaee7.

Here is the XHTML source code for the initial Facelets view, and the file is called 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://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

  <h:head>
    <title>Digital Java EE 7 - Sample JSF</title>
  </h:head>
  <h:body>
    This is the simplest JSF example possible.

    <h:form>
      <h:commandButton...
Left arrow icon Right arrow icon

Key benefits

  • Build modern Java EE web applications that insert, update, retrieve, and delete customer data with up-to-date methodologies
  • Delve into the essential JavaScript programming language and become proficient with front-end technologies that integrate with the Java platform
  • Learn about JavaServer Faces, its lifecycle, and custom tags, and build exciting digital applications with the aid of handpicked, real-world examples

Description

Digital Java EE 7 presents you with an opportunity to master writing great enterprise web software using the Java EE 7 platform with the modern approach to digital service standards. You will first learn about the lifecycle and phases of JavaServer Faces, become completely proficient with different validation models and schemes, and then find out exactly how to apply AJAX validations and requests. Next, you will touch base with JSF in order to understand how relevant CDI scopes work. Later, you’ll discover how to add finesse and pizzazz to your digital work in order to improve the design of your e-commerce application. Finally, you will deep dive into AngularJS development in order to keep pace with other popular choices, such as Backbone and Ember JS. By the end of this thorough guide, you’ll have polished your skills on the Digital Java EE 7 platform and be able to creat exiting web application.

Who is this book for?

If you are a professional Java engineer and want to develop well-rounded and strong Java Web Development skills, then this book is for you.

What you will learn

  • Understand and apply updated JavaServer Faces key features including HTML5 support, resource library constructs, and pass through attributes,
  • Build web applications that conform to digital standards and governance, and leverage the Java EE 7 web architecture
  • Construct modern JSF Forms that apply validation, add AJAX for immediate validation, and write your own validators
  • Augment a traditional web application with JSF 2.2 Flow Beans and Flow Scope Beans
  • Program single page applications including AngularJS, and design Java RESTful back-end services for integration
  • Utilize modern web frameworks such as Bootstrap and Foundation in your JSF applications
  • Create your own JSF custom components that generate reusable content for your stakeholders and their businesses

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Sep 30, 2015
Length: 486 pages
Edition : 1st
Language : English
ISBN-13 : 9781782176640
Vendor :
Oracle
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Sep 30, 2015
Length: 486 pages
Edition : 1st
Language : English
ISBN-13 : 9781782176640
Vendor :
Oracle
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 129.97
Java EE 7 Web Application Development
€50.99
RESTful Java Web Services, Second Edition
€36.99
Test-Driven Java Development
€41.99
Total 129.97 Stars icon

Table of Contents

14 Chapters
1. Digital Java EE 7 Chevron down icon Chevron up icon
2. JavaServer Faces Lifecycle Chevron down icon Chevron up icon
3. Building JSF Forms Chevron down icon Chevron up icon
4. JSF Validation and AJAX Chevron down icon Chevron up icon
5. Conversations and Journeys Chevron down icon Chevron up icon
6. JSF Flows and Finesse Chevron down icon Chevron up icon
7. Progressive JavaScript Frameworks and Modules Chevron down icon Chevron up icon
8. AngularJS and Java RESTful Services Chevron down icon Chevron up icon
9. Java EE MVC Framework Chevron down icon Chevron up icon
A. JSF with HTML5, Resources, and Faces Flows Chevron down icon Chevron up icon
B. From Request to Response Chevron down icon Chevron up icon
C. Agile Performance – Working inside Digital Teams Chevron down icon Chevron up icon
D. Curated References Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.4
(8 Ratings)
5 star 62.5%
4 star 12.5%
3 star 25%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




SuJo Dec 02, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I've worked with Java EE in the past but wanted to get a book I felt would serve me well with brushing up on newer technologies such as HTML 5 integration with JFS. I felt the book was well laid out and didn't cover outdated technologies found in older books, which is to be expected. I was looking at this book for the AngularJS/REST portion and how it would tie into Java EE 7, and the MVC Framework was also designed rather well and gave me something to start working with for future projects, absolutely love the flow of the material and the author has a sound knowledge of Java EE 7. Highly recommend this book!
Amazon Verified review Amazon
ruben Dec 02, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Hello this is an excelent book it all the necessary to start the development programming using an important toolI really recommend this title it has all the necessary to begin your your first software development with Java.These are the main topics:Build modern Java EE web applications that insert, update, retrieve, and delete customer data with up-to-date methodologiesProgram single page applications including AngularJS, and design Java RESTful back-end services for integration
Amazon Verified review Amazon
Amazon Customer Mar 04, 2016
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Very good book for a person who would like to have a review of modern technology applied in the field of web applications in Java.
Amazon Verified review Amazon
Alex Theedom Dec 04, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
It is everything I expected it to be. An excellently and well written book that guides you through the easy and tricky parts of web and Java EE development.You will discover what is needed to develop the frontend of a web app using JavaServer Faces, AngularJS to name a few. You will learn how to interact with REST endpoints and how AJAX improves user experience.Unlike many books it does not focus on only one technology it discusses alternatives such as jQuery, RequireJS and UnderscoreJS. Which allows you to make informed technology choices. It goes beyond the present and looks to the future of Java EE 8 and the up and coming MVC framework.The reference section details interesting topics relevant to the main discussion but that are normally considered 'beyond the scope' by other books, but not in this case. The author talks about agile performance and roles within a team, he talks about the request/response cycle in greater details and finishes with a very handy reference section.The author explains concepts with diagrams and code examples and finishes each chapter with exercises based on the topic of that chapter.I recommend this book for anyone interested in Java EE web development and for those moving from a Spring background.
Amazon Verified review Amazon
Lars Lemos Dec 04, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Such an amazing book.Started reading and got so much fascinated with the concepts and the approach used that completed chapters straight.In the introduction if you are not familiar with the Java EE 7,you may take as too much information about the platformBut as you read along you start to understand where the pieces fit together.From all the frameworks in the Java EE ecosystem, the main focus here is the JSF which is often used for Front-End Web Development.The book all the main concepts from the framework and how to achieve the necessary task in web development such as Build Forms, Validate data using AJAX,the possible application sequence flows and user interaction.All this concept takes into consideration use of HTML5.In order to integrate you application with nowadays front-end often developed with JavaScript Frameworks, instructions are included for AngularJS for Java RESTful Services.To my surprise, this books offers at the end of each chapter "Exercises" whichnot only serve to test your understanding of the chapter but further make youinspect the other possible options and put you on a Real world scenarion.As a cherry on top for the book, it contains the Java EE 8 MVC which is the latest(still under development) MVC framework.For who still not satisfied can use the Appendix that have a list of deeper reading references.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.