diff --git a/jsf/src/main/java/com/baeldung/springintegration/ELSampleBean.java b/jsf/src/main/java/com/baeldung/springintegration/ELSampleBean.java
new file mode 100644
index 0000000000..32076bcbad
--- /dev/null
+++ b/jsf/src/main/java/com/baeldung/springintegration/ELSampleBean.java
@@ -0,0 +1,118 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.baeldung.el.controllers;
+
+import java.util.Random;
+import javax.annotation.PostConstruct;
+import javax.faces.application.Application;
+import javax.faces.application.FacesMessage;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.ViewScoped;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.context.FacesContext;
+
+/**
+ *
+ * @author Tayo
+ */
+@ManagedBean(name = "ELBean")
+@ViewScoped
+public class ELSampleBean {
+
+ private String firstName;
+ private String lastName;
+ private String pageDescription = "This page demos JSF EL Basics";
+ private int pageCounter;
+ private Random randomIntGen = new Random();
+
+ @PostConstruct
+ public void init() {
+ pageCounter = randomIntGen.nextInt();
+ }
+
+ public void save(){
+
+ }
+
+ public void saveFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+
+ public void saveByELEvaluation(){
+ firstName = (String)evaluateEL("#{firstName.value}", String.class);
+ FacesContext ctx = FacesContext.getCurrentInstance();
+ FacesMessage theMessage = new FacesMessage("Name component Evaluated: "+firstName);
+ theMessage.setSeverity(FacesMessage.SEVERITY_INFO);
+ ctx.addMessage(null,theMessage);
+
+ }
+
+ private Object evaluateEL(String elExpression, Class> clazz) {
+ Object toReturn = null;
+ FacesContext ctx = FacesContext.getCurrentInstance();
+ Application app = ctx.getApplication();
+ toReturn = app.evaluateExpressionGet(ctx, elExpression, clazz);
+
+ return toReturn;
+
+ }
+
+ /**
+ * @return the firstName
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /**
+ * @param firstName the firstName to set
+ */
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ /**
+ * @return the lastName
+ */
+ public String getLastName() {
+ return lastName;
+ }
+
+ /**
+ * @param lastName the lastName to set
+ */
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ /**
+ * @return the pageDescription
+ */
+ public String getPageDescription() {
+ return pageDescription;
+ }
+
+ /**
+ * @param pageDescription the pageDescription to set
+ */
+ public void setPageDescription(String pageDescription) {
+ this.pageDescription = pageDescription;
+ }
+
+ /**
+ * @return the pageCounter
+ */
+ public int getPageCounter() {
+ return pageCounter;
+ }
+
+ /**
+ * @param pageCounter the pageCounter to set
+ */
+ public void setPageCounter(int pageCounter) {
+ this.pageCounter = pageCounter;
+ }
+}
diff --git a/jsf/src/main/webapp/el_intro.xhtml b/jsf/src/main/webapp/el_intro.xhtml
new file mode 100644
index 0000000000..3b58d6288d
--- /dev/null
+++ b/jsf/src/main/webapp/el_intro.xhtml
@@ -0,0 +1,38 @@
+
+
+
+
+ Baeldung | The EL Intro
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+