Les déclarations en JSP
Les déclarations en JSP
-
Objectifs
- Etre capable de déclarer des variables ou méthodes en JSP
-
Présentation
- Une déclaration est écrite entre les tags
<%!
et%>
. - Tout ce qui se trouve entre ces tags est placé à l’extérieur de toute méthode, dans la classe générée. On peut donc entre autre déclarer des variables ou des méthodes par ce biais.
- Une déclaration déclare une ou plusieurs variables ou méthodes que vous pouvez utiliser dans le code Java ultérieurement dans le fichier JSP. Vous devez déclarer la variable ou la méthode avant de l’utiliser dans le fichier JSP.
- Une déclaration est employée pour introduire et éventuellement initialiser une variable ou une méthode Java, comme dans un programme.
- Une déclaration permet de définir un bloc pour les variables globales ainsi que pour des méthodes qui pourront ensuite être utilisées dans le reste du document JSP.
- Les déclarations peuvent être placées à n’importe quel endroit dans une page JSP, mais il est préférable comme pour les directives, de les placer en début de fichier.
-
Syntaxe et utilisation
- Pour créer une déclaration, il faut placer le code entre le délimiteur d’ouverture
<%!
et le délimiteur de fermeture%>
. <%! declaration; [ declaration; ]+ ... %>
<jsp:declaration> declaration; </jsp:declaration>
- Nous pouvons également définir des méthodes qui seront utilisées ensuite dans l'ensemble de la page, pour éviter les répétitions :
- ou
-
Exemple
- Ce fragment de code déclare une variable a de type Circle et l'initialise en appelant le constructeur de cette classe. Toute les variables ainsi déclarées deviennent des attributs et sont donc accessibles dans toute la page.
-
Application
-
Enoncé
- Ecrire une page JSP, et effectuer les tâches suivantes:
- Déclarer une variable laDate et l’initialiser avec la date courante
- Ecrire la fonction getDate() qui retourne la date d'aujourd'hui
- Afficher la date de chargement de la page en utilisant une expression qui permet d’afficher la date en appelant la fonction getDate(), concaténée au texte "Aujourd’hui est le: "
- Déclarer une autre fonction calculFacto() qui calcule le factoriel d'un nombre passé en paramètre.
- Générer un tableau de 20 lignes. Chaque ligne contient deux cases. La première case contient le numéro de cette ligne et la seconde contient le factoriel de ce nombre.
- Le titre de chacune des colonnes sont respectivement "N° ordre", "Factoriel" et que la largeur de la première est 90 et la seconde est 300?
-
Solution
ou
<%!
public int nombreMots(String chaîne) {
return new StringTokenizer(chaîne).countTokens();
}
%>
<jsp:declaration>
public int nombreMots(String chaîne) {
return new StringTokenizer(chaîne).countTokens();
}
</jsp:declaration>
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
<?xml version="1.0" encoding="ISO-8859-1" ?> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.util.Date" %> <!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:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Insert title here</title> </head> <body> <f:view> <%! Date getDate(){ return new Date(); } int calculFacto(int n) { if (n == 0 || n == 1) { return 1; } return n * calculFacto(n - 1); } %> <h2>Aujourdhui est le :<%=getDate() %></h2> <table border="2"> <tr><td width="200">N° Order</td><td width="300">Factoriel</td></tr> <% for (int i = 0; i <= 20; i++) { %> <tr><td><%= i%></td><td><%= calculFacto(i)%> </td></tr> <% } %> </table> </f:view> </body> </html>
Bibliographie
- https://www.editions-eni.fr/open/mediabook.aspx?idR=d61db330adee76e87b74dc180f67552d