JSF - building complete CMS with Java and JavaServer Faces

Build responsive multilanguage content management system from scratch to finish with JavaServer Faces, MySQL, Primefaces

3.80 (45 reviews)
Udemy
platform
English
language
Web Development
category
instructor
JSF - building complete CMS with Java and JavaServer Faces
216
students
10 hours
content
Jan 2019
last update
$24.99
regular price

What you will learn

Write own content management system (CMS) on Java web technologies

Know how to use JavaServer Faces (JSF) in action, and how to develop system in both backend and frontend part

Use Java technology for web development - JavaServer Faces, which is technology which supersedes JavaServer Pages (JSP) and is developed through the Java Community Process

Develop multilanguage system

Manipulate data - create, read, update, delete (CRUD) data through database such as MySQL

Implement PrimeFaces components for image and file uploaders

Develop user authentication functionality

Adjust server like Apache Tomcat to handle server directives and static data like images and files

Know how to develop web applications with JSF's templating system

Write JSF components without <table>, <tr> and <td> html tags (tableless html design)

Implement rich text editor (CKEditor for Java), also with tabs on textarea elements

Use managed beans and bean scopes

Bind Java beans to JSF components, manipulating with URL paths and params and HTML

Create image thumbnails of easily redefined dimensions

Use JSTL conditions in action

Use JQuery and JavaScript alongside JavaServer Faces and PrimeFaces

Write custom data to log files through own custom logging class

Develop system based on MVC pattern

Create custom JDBC database manager

Update project to newer version of JDK, Apache Maven, Apache Tomcat and Eclipse IDE

Write pom xml file and use Maven

Mavenize Java project

Use Java 11 in JSF applications

Why take this course?

Update - 2019-01-11 Project is Mavenized and updated to: Java 11, Apache Maven 3.6.0, Apache Tomcat 9.0.14, Eclipse IDE 2018-12. Beside mavenization, project is also modularized (please check section: Appendix).

Are you interested in Java web developement? Tired of JSP? 

Why not use JSF? Did you know that as Oracle states: "JSP technology is considered to be a deprecated presentation technology for JavaServer Faces"?

What is JSF?

"JSF is a component based MVC framework which is built on top of the Servlet API and provides components via taglibs which can be used in JSP or any other Java based view technology such as Facelets. Facelets is much more suited to JSF than JSP. It namely provides great templating capabilities such as composite components, while JSP basically only offers the <jsp:include> for templating, so that you're forced to create custom components with raw Java code (which is a bit opaque and a lot of tedious work in JSF) when you want to replace a repeated group of components with a single component. Since JSF 2.0, JSP has been deprecated as view technology in favor of Facelets.

As being a MVC (Model-View-Controller) framework, JSF provides the FacesServlet as the sole request-response Controller. It takes all the standard and tedious HTTP request/response work from your hands, such as gathering user input, validating/converting them, putting them in model objects, invoking actions and rendering the response. This way you end up with basically a JSP or Facelets (XHTML) page for View and a JavaBean class as Model. The JSF components are used to bind the view with the model and the FacesServlet uses the JSF component tree to do all the work."

"JavaServer™ Faces technology simplifies building user interfaces for JavaServer application"

"JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications and was formalized as a standard through the Java Community Process being part of the Java Platform, Enterprise Edition. It is also a MVC web framework that simplifies construction of user interfaces (UI) for server-based applications by using reusable UI components in a page."

"Java Server Faces (JSF) is a Java-based web application framework intended to simplify development integration of web-based user interfaces. JavaServer Faces is a standardized display technology, which was formalized in a specification through the Java Community Process."

"It simplifies development by providing a component-centric approach to developing Java Web user interfaces. JavaServer Faces also appeals to a diverse audience of Java/Web developers. "Corporate developers" and Web designers will find that JSF development can be as simple as dragging and dropping user interface (UI) components onto a page, while "systems developers" will find that the rich and robust JSF API offers them unsurpassed power and programming flexibility. JSF also ensures that applications are well designed with greater maintainability by integrating the well established Model-View-Controller (MVC) design pattern into it's architecture. Finally, since JSF is a Java standard developed through Java Community Process (JCP), development tools vendors are fully empowered to provide easy to use, visual, and productive develop environments for JavaServer Faces."

If all this sounds interesting to you, and you want to learn about Java web developement, then this is course for you!

Technologies used in this course:

- Java/JavaServer Faces (JSF)/PrimeFaces/Xampp/MySQL/Apache Tomcat/JSTL/XML/HTML/Javascript/JQuery/CSS

What is covered in course:

- Making of Content management system (CMS) web application project, step by step, from scratch to finish 
- writing of Java classes, XML, HTML and JSF templates, JSTL, Javascript files; binding Java Beans to JSF components, manipulating with URL and HTML  
data
- Writing files from blank step by step, explanations of all code files
- Creating database with all tables 
- Defining server paths and properties
- Use of Eclipse IDE for writing project code, building and running application
- solving errors and bugs

What will CMS web app consist of:

- JSF project without tables - tableless html design (div and span tags used, except of item listings pages)
- Responsive html design
- Multi-language CMS
- Image and file multi-uploaders 
- Rich text editors
- Login screen
- Menu with categories and subcategories
- Web pages including header, menu, forms for entering and editing data, footer
- Web pages including header, menu, listings of entered data, footer
- Configuration file for both local and live settings

What will CMS web app be capable of:

- View-ing and manipulating data
- CRUD (create, read, update and delete) data (via database)
- Login (authentication), session while logged in; logout
- Upload of data (images and files)
- Logging developer data
- Using tabbed view of rich text editors for defined languages
- Storing image thumbnails of easily redefined dimensions
- Upload of defined extension types

What special features will be covered from Java and JSF:

- MVC controller
- Working with managed beans
- JSF View Scope
- JSF Session Scope
- Extended model to controller
- Various JSF html tags
- JSF working with ajax
- JSF iteration of data
- Defining JSTL conditions 
- Primefaces for image and file uploaders
- Java implementation of rich text editor
- Quality image resizer

Content

Course Introduction

Introduction

Setting up Development Environment

Setting up Java and Eclipse IDE, getting familiar with Eclipse IDE

Getting Started With JSF in Eclipse

Creating and Setting up Project
Adding Necessary Libaries and Setting up Server
Creating Necessary Files and Folders

Creating Skeleton Code, Packages and Classes for our Project

Adding Skeleton Code to XHTML Files
Creating Packages and Classes
Writing Model Classes

Developing Database Manager

Developing Database Manager (1/2)
Developing Database Manager (2/2)

Testing Database Connection and Setting up Database Environment

Testing Database Connection, Installing and Setting up MySql/PhpMyAdmin

Database Creation

Creating Database, Importing Database Structure and Data

Creating Various Methods for Database Manager

Writing Method Inside Config class for later use in database manager.
Writing Database Manager Method for Saving Items (Insert and Update)
Writing Method for Getting Data From Any Table
Writing Method for Getting Listings of Items, News, etc From the Database
Writing Method for Deleting Data From the Database

Writing The Deployment Descriptor: web.xml

What Should be Contained Inside web.xml?
Writing web.xml Directives, Defining Directives for Global Variables (1/3)
Writing web.xml Directives, Defining Directives for Global Variables (1/3)
Writing web.xml Directives, Defining Directives for Global Variables (2/3)
Writing web.xml Directives, Defining Directives for Global Variables (3/3)
Writing web.xml Directives, Defining Directives for Global Variables (3/3)

Creating Login Authentication Functionality

JSF bean scopes
Writing LoginController Class (1/2)
Writing LoginController Class (1/2)
Writing LoginController Class (2/2)
Writing LoginController Class (2/2)
Coding in login.xhtml. Definition And Usage of Neccessary Namespaces
Coding in login.xhtml. Definition And Usage of Neccessary Namespaces
Coding in login_form.xhtml. Binding Attributes With Bean
Coding in login_form.xhtml. Binding Attributes With Bean
Coding in head_tag.xhtml. Responsive Design Definitions, Usage of JSTL
Coding in head_tag.xhtml. Responsive Design Definitions, Usage of JSTL

CSS Styling and Templating CMS Application

Controling Style Through Code. Starting Web Application Through Tomcat Container
Controling Style Through Code. Starting Web Application Through Tomcat Container
Using Templates in JSF
Using templates in JSF
Writing Template HTML Files
Writing Template HTML Files

Coding Template .xhtml Files

Coding menu.xhtml Template File (1/3)
Coding menu.xhtml Template File (1/3)
Coding menu.xhtml Template File (2/3)
Coding menu.xhtml Template File (3/3)
Coding content.xhtml and footer.xhtml Template Files
Coding content.xhtml and footer.xhtml Template Files

Developing ItemsController

Programming Fields, Getters, Setters and Constructors in ItemsController (1/2)
Programming Fields, Getters, Setters and Constructors in ItemsController (1/2)
Programming Fields, Getters, Setters and Constructors in ItemsController (2/2)
Programming Fields, Getters, Setters and Constructors in ItemsController (2/2)
Initialize Method of ItemsController Class
Initialize Method of ItemsController Class
Method getItemListAll of ItemsController Class
Method getItemListAll of ItemsController Class
Further Development of ItemsController Class (1/2)
Further Development of ItemsController Class (2/2)
Further Development of ItemsController Class (2/2)
Implementation of Save Metod in ItemsController Class
Implementation of Save Metod in ItemsController Class

Logging the Data and Checking Look of the CMS Application

Writing Custom Logger Class
Fixing Errors and Checking Look of the CMS Application
Fixing Errors and Checking Look of the CMS Application

Developing HTML/JSF Page for Editing Items

Writing HTML for item_edit.xhtml (1/2)
How many namespace declarations can we add to html tag?
Writing HTML for item_edit.xhtml (2/2)
Writing HTML for item_edit.xhtml (2/2)
Writing Multiple CKEditor Textarea Elements for Multilanguage Purposes
Writing Multiple CKEditor Textarea Elements for Multilanguage Purposes
Implementation of Tab Switching With Custom JavaScript Function txt_tabs and CSS
Implementation of Tab Switching With Custom JavaScript Function txt_tabs and CSS
Writing Command Buttons for Saving Data
Writing Command Buttons for Saving Data
Explanation and Demonstration How Save Buttons Work
Explanation and Demonstration How Save Buttons Work

Creating and Binding Drop-down Lists in CMS Web Application

Creating and Binding Drop-down Lists in CMS Web Application
Creating and Binding Drop-down Lists in CMS Web Application
Method getTreeSelect and OperationsController
Method getTreeSelect and OperationsController
Writing display_tree_select Method in Recursion for Drop-down list Indentation
Writing display_tree_select Method in Recursion for Drop-down list Indentation
Explanation of Desired Drop-down Lists Behaviour Through Code, Debugging
Explanation of Desired Drop-down Lists Behaviour Through Code, Debugging

Creating PrimeFaces Image Uploader

Coding PrimeFaces Image Uploader
Coding PrimeFaces Image Uploader
Writing Render Container for PrimeFaces Image Uploader
Writing Render Container for PrimeFaces Image Uploader
Writing Messages for PrimeFaces Image Uploader and Testing the Uploader
Writing Messages for PrimeFaces Image Uploader and Testing the Uploader

Developing OperationsController

ManagedBean, New Fields and Definitions in Constructor of OperationsController
ManagedBean, New Fields and Definitions in Constructor of OperationsController
New Constructors for Images and Files in OperationsController
New Constructors for Images and Files in OperationsController

Developing handleFileUpload Method

Developing handleFileUpload Method, Writing Code for Image Uploads (1/4)
Developing handleFileUpload Method, Writing Code for Image Uploads (1/4)
Developing handleFileUpload Method; Image Uploads and Thumbnails Creation (2/4)
Developing handleFileUpload Method; Image Uploads and Thumbnails Creation (2/4)
Developing handleFileUpload Method, Writing Code for Document Uploads (3/4)
Developing handleFileUpload Method, Writing Code for Document Uploads (3/4)
Developing handleFileUpload Method, Saving File Informations to Database (4/4)
Developing handleFileUpload Method, Saving File Informations to Database (4/4)

Loading and Deleting Images and Files, Setting Server For Viewing Desired Files

Writing Methods for Getting Photos and Files Information From the Database
Writing Methods for Getting Photos and Files Information From the Database
Setting server.xml for Loading Images and Files
Setting server.xml for Loading Images and Files
Creating Methods for Deleting Images and Files From Disc And the Database
Creating Methods for Deleting Images and Files From Disc And the Database
Explanations and Examples How Method for Deleting Images Works
Explanations and Examples How Method for Deleting Images Works

HTML/JSF Multilanguage Documents Uploader

Coding HTML/JSF Multilanguage Documents Uploader
Coding HTML/JSF Multilanguage Documents Uploader
Coding HTML/JSF Multilanguage Documents Uploader, Examples of Upload and Delete
Coding HTML/JSF Multilanguage Documents Uploader, Examples of Upload and Delete
Coding for Rest of the Languages of HTML/JSF Multilanguage Documents Uploader

Developing HTML/JSF Page for Items Listing

Coding items_view.xhtml Page (1/3)
Coding items_view.xhtml Page (1/3)
Coding items_view.xhtml Page (2/3)
Coding items_view.xhtml Page (2/3)
Coding items_view.xhtml Page (3/3)
Coding items_view.xhmtl Page (3/3)
Fixing Errors
Fixing errors

Developing News, References and Contact HTML/JSF Edit and Listing Pages

Coding news_edit.xhtml HTML/JSF Page
Coding news_view.xhtml HTML/JSF page
Coding references_edit.xhtml and references_view.xhtml HTML/JSF Page
Coding references_edit.xhtml and references_view.xhtml HTML/JSF Page
Coding contact_edit.xhtml HTML/JSF Page
Coding contact_edit.xhtml HTML/JSF Page

Overview

Overview of Complete CMS
Overview of Complete CMS

Source Code Download

Source Code

Appendix

Installing and setting newest JDK, Apache Maven, Apache Tomcat, Eclipse IDE
Mavenization of project and update to Java 11 and Tomcat 9 - part 1
Mavenization of project and update to Java 11 and Tomcat 9 - part 2
Running modularized project with JDK 11, Maven 3.6.0, and Tomcat 9.0.14
Mavenized source code

For Those Who Want to Do More; Closing Words and Gratitude

For Those Who Want to Do More
Thanks and Leave a Rating for the Course

Screenshots

JSF - building complete CMS with Java and JavaServer Faces - Screenshot_01JSF - building complete CMS with Java and JavaServer Faces - Screenshot_02JSF - building complete CMS with Java and JavaServer Faces - Screenshot_03JSF - building complete CMS with Java and JavaServer Faces - Screenshot_04

Reviews

Urs
July 23, 2023
In some places, it is not entirely clear why programming is done in this way. At least I have here too little detailed knowledge of the Request-Parameters. (-> For-Loop with RequestParameterMap in "ItemsController.save") Is there not also a problem in connection with SQL injection?
Alena
October 13, 2021
Unfortunately I still dont have access to the jar files that are on the shared disc that I dont have access to ... also there is no trouble shooting, I opened new project in Eclipse and it keeps showing me errors about XML files, I have searched internet for more info but I cant fix it ... so I have installed different program to work in but its not the same and I have hard time making everything I need ... now I am just waiting to learn the logic and somehow make it
Davide
March 27, 2020
Very practical approach to the subject. Good for collecting some best-practices and deepen the understanding of a full-stack web application.
Rick
January 22, 2019
Terrible course. A lot of duplicate code, and the final product doesn't even work properly. If you want to know about "worst practices" in software design, then please watch this series to see how you can hardcode everything and duplicate the same code literally 10 times right below each other.
Guntur
November 6, 2018
good and simple explaination, easy to understand and easy to follow the practical, but please show us also the preview site not only the cms preview thank you Best Regards, Guntur
Chandan
February 15, 2018
The course so far has been great, to the point, clear and not a lot in a single video. Thanks, really has been helpful in learning .

Charts

Price

JSF - building complete CMS with Java and JavaServer Faces - Price chart

Rating

JSF - building complete CMS with Java and JavaServer Faces - Ratings chart

Enrollment distribution

JSF - building complete CMS with Java and JavaServer Faces - Distribution chart
1233780
udemy ID
5/29/2017
course created date
10/27/2022
course indexed date
Bot
course submited by