Outils pour utilisateurs

Outils du site


helloworld_web_java_el

Ceci est une ancienne révision du document !


Objets implicites

Les objets implicites sont (Source, Archive) :

  • pageContext : Accès à l'objet PageContext de la page JSP.
  • pageScope : Map permettant d'accéder aux différents attributs du scope 'page'.
  • requestScope : Map permettant d'accéder aux différents attributs du scope 'request'.
  • sessionScope : Map permettant d'accéder aux différents attributs du scope 'session'.
  • applicationScope : Map permettant d'accéder aux différents attributs du scope 'application'.
  • param : Map permettant d'accéder aux paramètres de la requête HTTP sous forme de String.
  • paramValues : Map permettant d'accéder aux paramètres de la requête HTTP sous forme de tableau de String.
  • header : Map permettant d'accéder aux valeurs du Header HTTP sous forme de String.
  • headerValues : Map permettant d'accéder aux valeurs du Header HTTP sous forme de tableau de String.
  • cookie : Map permettant d'accéder aux différents Cookies.
  • initParam : Map permettant d'accéder aux init-params du web.xml.

Manipulation des Beans

  • Pour les JSP, il est possible d'instancier plusieurs variables d'une même classe, de modifier leurs attributs et de les afficher. Il n'est pas nécessaire de définir la classe comme ManagedBean ou ses méthodes comme ManagedProperty que ce soit par annotation ou par le fichier faces-config.xml.
index2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
  <jsp:useBean id="perso1" scope="session" class="com.llgc.BeanPersonne">
    <jsp:setProperty property="taille" name="perso1" value="170" />
  </jsp:useBean>
  <jsp:setProperty property="yeuxBleus" name="perso1" value="true" />
  <jsp:useBean id="perso2" scope="session" class="com.llgc.BeanPersonne">
    <jsp:setProperty property="taille" name="perso2" value="160" />
  </jsp:useBean>
  <jsp:setProperty property="yeuxBleus" name="perso2" value="false" />
    <p>
    La personne 1 possède une taille de ${sessionScope.perso1.taille} cm et
    <c:if test="${!perso1.yeuxBleus}">
      n'a pas
    </c:if>
    <c:if test="${perso1.yeuxBleus}">
      <c:out value="a" />
    </c:if>
    les yeux bleus.<br />
    La personne 2 possède une taille de ${perso2.taille} cm et
    <c:if test="${!perso2.yeuxBleus}">
      n'a pas
    </c:if>
    <c:if test="${perso2.yeuxBleus}">
      <c:out value="a" />
    </c:if>
    les yeux bleus.
  </p>
</body>
</html>
  • Sous JSF, il n'est possible d'instancier un Bean qu'une seule fois. Par exemple, ci-dessous un exemple pour travailler avec le BeanPersonne, le modifier et l'afficher.

<note important>Notez la majuscule au début du Bean dans <c:set target=“${BeanPersonne}” et son absence dans ${beanPersonne.taille}. En effet, dans l'un, on travaille avec la classe, dans l'autre, son unique instanciation.</note>

index2.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:c="http://java.sun.com/jsp/jstl/core"
  xmlns:h="http://java.sun.com/jsf/html">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Insert title here</title>
</head>
<body>
  <c:set target="${BeanPersonne}" property="taille" value="170" />
  <c:set target="${BeanPersonne}" property="yeuxBleus" value="true" />
  <p>
    La personne possède une taille de ${beanPersonne.taille} cm et
    <c:if test="${beanPersonne.yeuxBleus}">
      <h:outputText value="a" />
    </c:if>
    <c:if test="${!beanPersonne.yeuxBleus}">
    n'a pas
    </c:if>
    les yeux bleus.
  </p>
</body>
</html>

Il est nécessaire de déclarer le Bean comme ManagedBean (javax.faces.bean) et ces attributs ManagedProperty.

BeanPersonne.java
package com.llgc;
 
import java.util.Arrays;
 
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
 
@ManagedBean
public class BeanPersonne
{
  @ManagedProperty(value="#{taille}")
  private int taille = 150;
  @ManagedProperty(value="#{yeuxBleus}")
  private boolean yeuxBleus = false;
  @ManagedProperty(value="#{diplomes}")
  private int[] diplomes = null;
 
  public int getTaille ()
  {
    return taille;
  }
 
  public void setTaille (int taille)
  {
    this.taille = taille;
  }
 
  public boolean isYeuxBleus ()
  {
    return yeuxBleus;
  }
 
  public void setYeuxBleus (boolean yeuxBleus)
  {
    this.yeuxBleus = yeuxBleus;
  }
 
  public int[] getDiplomes ()
  {
    return diplomes;
  }
 
  public void setDiplomes (int[] diplomes)
  {
    this.diplomes = diplomes;
  }
 
  public int getDiplomes (int index)
  {
    return diplomes[index];
  }
 
  public void setDiplomes (int index, int diplome)
  {
    this.diplomes[index] = diplome;
  }
 
  @Override
  public String toString ()
  {
    return "BeanPersonne [taille=" + taille + ", yeuxBleus=" + yeuxBleus + ", diplomes=" + Arrays.toString (diplomes)
        + "]";
  }
}

Les Beans et les formulaires

L'utilisation la plus courante des Beans et des EL est certainement celui des formulaires pour mémoriser les valeurs des champs d'une page à l'autre (scope session).

helloworld_web_java_el.1439061654.txt.gz · Dernière modification : de root