Wiki

Clone wiki

Oracle JSF Expert 1Z0-896 / Expression Language and Implicit Objects

EL Bean Values

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

@Named("values")
@RequestScoped
public class ELValues {

    private String name;

    private String[] nameArray;

    private List<String> nameList;

    private Map<String, String> dayMap;

    @PostConstruct
    public void init() {
        dayMap = new HashMap<>();
        dayMap.put("1", "Sunday");
        dayMap.put("2", "Monday");
        dayMap.put("3", "Tuesday");
        dayMap.put("4", "Wednesday");
        dayMap.put("5", "Thursday");
        dayMap.put("6", "Friday");
        dayMap.put("7", "Saturday");

        name = "paul";
        nameArray = new String[] {"paul", "tom", "dick", "harry"};
        nameList = Arrays.asList(nameArray);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getNameArray() {
        return nameArray;
    }

    public void setNameArray(String[] nameArray) {
        this.nameArray = nameArray;
    }

    public List<String> getNameList() {
        return nameList;
    }

    public void setNameList(List<String> nameList) {
        this.nameList = nameList;
    }

    public Map<String, String> getDayMap() {
        return dayMap;
    }

    public void setDayMap(Map<String, String> dayMap) {
        this.dayMap = dayMap;
    }

}
<?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://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <title>EL Getting at values</title>
</h:head>
<h:body>
    <h:panelGrid columns="2">
        <h:outputText value="\#{values.name}"/>
        <h:outputText value="#{values.name}"/>
        <h:outputText value="\#{values['name']}"/>
        <h:outputText value="#{values['name']}"/>
        <h:outputText value="\#{values.nameArray}"/>
        <h:outputText value="#{values.nameArray}"/>
        <h:outputText value="\#{values.nameArray[0]}"/>
        <h:outputText value="#{values.nameArray[0]}"/>
        <h:outputText value="\#{values.nameArray[1]}"/>
        <h:outputText value="#{values.nameArray[1]}"/>
        <h:outputText value="\#{values.nameArray[2]}"/>
        <h:outputText value="#{values.nameArray[2]}"/>
        <h:outputText value="\#{values.nameArray[3]}"/>
        <h:outputText value="#{values.nameArray[3]}"/>
        <h:outputText value="\#{values['nameArray'][0]}"/>
        <h:outputText value="#{values['nameArray'][0]}"/>
        <h:outputText value="\#{values['nameArray'][1]}"/>
        <h:outputText value="#{values['nameArray'][1]}"/>
        <h:outputText value="\#{values['nameArray'][2]}"/>
        <h:outputText value="#{values['nameArray'][2]}"/>
        <h:outputText value="\#{values['nameArray'][3]}"/>
        <h:outputText value="#{values['nameArray'][3]}"/>
        <h:outputText value="\#{values.nameList[0]}"/>
        <h:outputText value="#{values.nameList[0]}"/>
        <h:outputText value="\#{values.nameList[1]}"/>
        <h:outputText value="#{values.nameList[1]}"/>
        <h:outputText value="\#{values.nameList[2]}"/>
        <h:outputText value="#{values.nameList[2]}"/>
        <h:outputText value="\#{values.nameList[3]}"/>
        <h:outputText value="#{values.nameList[3]}"/>
        <h:outputText value="\#{values['nameList'][0]}"/>
        <h:outputText value="#{values['nameList'][0]}"/>
        <h:outputText value="\#{values['nameList'][1]}"/>
        <h:outputText value="#{values['nameList'][1]}"/>
        <h:outputText value="\#{values['nameList'][2]}"/>
        <h:outputText value="#{values['nameList'][2]}"/>
        <h:outputText value="\#{values['nameList'][3]}"/>
        <h:outputText value="#{values['nameList'][3]}"/>
        <h:outputText value="\#{values.dayMap['1']}"/>
        <h:outputText value="#{values.dayMap['1']}"/>
        <h:outputText value="\#{values.dayMap['2']}"/>
        <h:outputText value="#{values.dayMap['2']}"/>
        <h:outputText value="\#{values.dayMap['3']}"/>
        <h:outputText value="#{values.dayMap['3']}"/>
        <h:outputText value="\#{values.dayMap['4']}"/>
        <h:outputText value="#{values.dayMap['4']}"/>
        <h:outputText value="\#{values.dayMap['5']}"/>
        <h:outputText value="#{values.dayMap['5']}"/>
        <h:outputText value="\#{values.dayMap['6']}"/>
        <h:outputText value="#{values.dayMap['6']}"/>
        <h:outputText value="\#{values.dayMap['7']}"/>
        <h:outputText value="#{values.dayMap['7']}"/>   
    </h:panelGrid>
</h:body>
</html>

EL Operators

  • eq
  • ne
  • lt
  • gt
  • le
  • ge
  • empty
  • not
  • null
  • mod
  • div
  • instanceof
  • true
  • false

Implicit objects

  • flash
  • request
  • view
  • session
  • facesContext
  • initParam
  • component
  • cc
  • applicationScope
  • sessionScope
  • viewScope
  • requestScope
  • param
  • paramValues
  • header
  • headerValues
  • cookie
  • resource
  • pageContext

Updated