Вы находитесь на странице: 1из 5

Les nouveaut es de JSP 2.

0
1 Introduction
Nous avons d ej` a vu quelques nouveaut es de la version 2.0 dans les travaux pratiques pr ec edents (JSTL et langage dexpressions). Il nous reste deux am eliorations, l ecriture de balises personnalis ees et la production de document XML.

Balises personnalis ees

Depuis les JSP 2.0 nous pouvons facilement cr eer de nouvelles balises JSP d enies ` a partir dun chier JSP. Pour ce faire, suivez les etapes ci-dessous : 1. Placez vous dans lapplication WEB de test d enie dans les TP pr ec edents. 2. Cr eez les r epertoires /WEB-INF/tags/mestags/ 3. Cr eez le chier /WEB-INF/tags/mestags/message.tag
<%@ tag language="java" pageEncoding="UTF-8" %> <p>Bonjour</p>

4. Testez lutilisation de votre nouvelle balise message avec la page JSP ci-dessous :
<%@ taglib prefix="mm" tagdir="/WEB-INF/tags/mestags" %> <html> <body> <h1>Tester ma balise</h1> <mm:message /> </body> </html>

5. Les balises personnalis ees peuvent egalement avoir un contenu et utiliser ce contenu. Modiez le chier message.tag avec
<%@ tag language="java" pageEncoding="UTF-8"%> <p>Votre contenu : <jsp:doBody /></p>

6. Testez cette nouvelle version avec :


<%@ taglib prefix="mm" tagdir="/WEB-INF/tags/mestags" %> <html> <body> <h1>Tester ma balise</h1> <mm:message><b>Bonjour</b></mm:message> </body> </html>

7. Nous pouvons aussi d eclarer des attributs et les utiliser dans le corps de notre nouvelle balise. Modiez le chier message.tag avec
<%@ tag language="java" pageEncoding="UTF-8"%> <%@ attribute name="type" required="true" description="Type du message" %> <p>Votre contenu (type ${type}) : <jsp:doBody /></p>

8. A ce stade la page JSP de test doit avoir une erreur de validation : lattribut type est manquant. Utilisez maintenant cette nouvelle version :
<%@ taglib prefix="mm" tagdir="/WEB-INF/tags/mestags" %> <html> <body> <h1>Ajouter une balise</h1> <mm:message type="Important">Mon contenu</mm:message> </body> </html>

9. Nous pouvons aussi ajouter un type pour les attributs. Nous obtenons la nouvelle version ci-dessous :
<%@ tag language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ attribute name="type" required="true" description="Type du message" %> <%@ attribute name="textes" type="java.util.List" required="false" %> <p>Votre contenu (type ${type}) : <jsp:doBody /></p> <c:if test="${textes != null}"> <p>Vos textes :</p> <ul> <c:forEach var="texte" items="${textes}"> <li><c:out value="${texte}"/></li> </c:forEach> </ul> </c:if>

10. Le nouvelle attribut etant facultatif, vous pouvez continuer dutiliser lancienne version de la page de test. 11. Utilisez maintenant la version ci-dessous pour tester lutilisation dun attribut typ e:

<%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@ taglib prefix="mm" tagdir="/WEB-INF/tags/mestags" %> <html> <body> <h1>Ajouter une balise</h1> <mm:message type="Important">Mon contenu</mm:message> <% List<String> mesTextes = new ArrayList<String>(); mesTextes.add("Hello"); mesTextes.add("Salut"); %> <mm:message type="Alerte" textes="<%= mesTextes %>"/> </body> </html>

12. Comparez avec la nouvelle version ci-dessous :


<% List<String> mesTextes = new ArrayList<String>(); mesTextes.add("Hello"); mesTextes.add("Salut"); pageContext.setAttribute("mesTextes", mesTextes); %> <mm:message type="Alerte" textes="${mesTextes}"/>

A titre dexemple, vous pouvez construire une nouvelle balise qui facilite la cr eation dun el ement HTML select. Prenez soin dutiliser un attribut facultatif (label) qui associe un titre ( el ement HTML label) au select :
<mestags:select name="statut" value="${personne.statut}" options="${status}" label="Situation :" />

Pour en savoir plus : Il est egalement possible de d enir de nouvelles balises en fournissant limplantation sous la forme dun classe Java. Vous trouverez plus dinformation dans ce cours en ligne1 (chapitre 15).

Production de documents XML

Commencez par lire cet article2 qui pr esente les nouvelles pages JSPX. Essayez la page ci-dessous (avec lextension .jspx) :
1 2

http://docs.oracle.com/javaee/1.4/tutorial/doc/ http://www.onjava.com/pub/a/onjava/2004/04/21/JSP2part3.html

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" version="2.0" > <!-- fixer lencodage de sortie --> <jsp:directive.page contentType="text/xml; charset=iso-8859-1" /> <!-- fixer le format de sortie (comme XSL) --> <jsp:output omit-xml-declaration="false" doctype-root-element="messages" doctype-system="http://monserveur.fr/messages.dtd"/> <messages> <!-- un message en dur --> <message> Hello </message> <!-- evaluation java comme <%= %> --> <message> <jsp:expression>10 + 20</jsp:expression> </message> <!-- un message dynamique --> <jsp:element name="message"> <jsp:attribute name="class">important</jsp:attribute> <jsp:body> Bizarre </jsp:body> </jsp:element> <!-- JSTL + EL --> <message> <c:out value="${11 + 22}" /> </message> </messages> </jsp:root>

Ce document XML est trait e par le moteur de servlet et les el ements de lespace de nom xmlns :jsp sont evalu es et remplac es par le r esultat de l evaluation. Les pages JSP sont des documents de texte contrairement aux pages JSPX qui sont des documents XML. Faites en sorte de prendre une de vos anciennes page JSP et de la transformer en JSPX pour quelle produise du XHTML valide. Elle doit ressembler ` a ceci :

<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" xmlns="http://www.w3.org/1999/xhtml"> <jsp:output omit-xml-declaration="false" doctype-root-element="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> <html> <jsp:directive.page contentType="text/html" /> <head> <title>XHTML en JSPX</title> </head> <body> <p>Un exemple de XHTML en JSPX <jsp:useBean id="now" class="java.util.Date" /> <fmt:formatDate value="${now}" pattern="MMMM d, yyyy, H:mm:ss"/> </p> </body> </html> </jsp:root>

Вам также может понравиться

  • WSDL
    WSDL
    Документ41 страница
    WSDL
    Naho Algérienne
    Оценок пока нет
  • Cours Pls QL
    Cours Pls QL
    Документ41 страница
    Cours Pls QL
    Pape Bassirou
    Оценок пока нет
  • Maven Guide FR
    Maven Guide FR
    Документ430 страниц
    Maven Guide FR
    Pape Bassirou
    Оценок пока нет
  • Cours XSLT
    Cours XSLT
    Документ46 страниц
    Cours XSLT
    Pape Bassirou
    100% (1)
  • Philosophe S
    Philosophe S
    Документ2 страницы
    Philosophe S
    Pape Bassirou
    Оценок пока нет
  • Web Services
    Web Services
    Документ17 страниц
    Web Services
    Pape Bassirou
    Оценок пока нет
  • Fonctionnement MI
    Fonctionnement MI
    Документ12 страниц
    Fonctionnement MI
    Pape Bassirou
    Оценок пока нет
  • Apprenez A Programmer en C Sur Net
    Apprenez A Programmer en C Sur Net
    Документ131 страница
    Apprenez A Programmer en C Sur Net
    Pape Bassirou
    Оценок пока нет
  • Définition de Type de Document
    Définition de Type de Document
    Документ36 страниц
    Définition de Type de Document
    samihchreif
    Оценок пока нет
  • Cours5 - XSLT - 2020-2021
    Cours5 - XSLT - 2020-2021
    Документ51 страница
    Cours5 - XSLT - 2020-2021
    Walid Abdallaoui
    Оценок пока нет
  • Chap11 RedimPosition
    Chap11 RedimPosition
    Документ10 страниц
    Chap11 RedimPosition
    Amir Biadhi
    Оценок пока нет
  • Matrice de Compétences RH
    Matrice de Compétences RH
    Документ10 страниц
    Matrice de Compétences RH
    nessim
    Оценок пока нет
  • Questionnaires À Choix Multiples-Test6-Niveau Moyen
    Questionnaires À Choix Multiples-Test6-Niveau Moyen
    Документ4 страницы
    Questionnaires À Choix Multiples-Test6-Niveau Moyen
    Samir Benchakroun
    Оценок пока нет
  • HR050
    HR050
    Документ41 страница
    HR050
    Mostafa
    Оценок пока нет
  • TPE Programmation Web
    TPE Programmation Web
    Документ8 страниц
    TPE Programmation Web
    Yann Ebassa
    Оценок пока нет
  • Seance1 4 Annexes
    Seance1 4 Annexes
    Документ6 страниц
    Seance1 4 Annexes
    youssef bakkali
    Оценок пока нет
  • Série N° 2 - Les Formulaires Avec HTML5 Et CSS3
    Série N° 2 - Les Formulaires Avec HTML5 Et CSS3
    Документ3 страницы
    Série N° 2 - Les Formulaires Avec HTML5 Et CSS3
    Mariem Selmi
    Оценок пока нет
  • HTML 5 - S2 - Morad HAJJI
    HTML 5 - S2 - Morad HAJJI
    Документ48 страниц
    HTML 5 - S2 - Morad HAJJI
    Hafida Baazizi
    Оценок пока нет
  • 00 XML Presentation
    00 XML Presentation
    Документ18 страниц
    00 XML Presentation
    diambar sene
    Оценок пока нет
  • Les Pseudo-Classes en CSS
    Les Pseudo-Classes en CSS
    Документ19 страниц
    Les Pseudo-Classes en CSS
    Omaïma Beniyche
    Оценок пока нет
  • XML Schema PDF
    XML Schema PDF
    Документ34 страницы
    XML Schema PDF
    Mourad LM
    Оценок пока нет
  • Junos Pyez
    Junos Pyez
    Документ48 страниц
    Junos Pyez
    Taras
    0% (1)
  • Cours XML
    Cours XML
    Документ95 страниц
    Cours XML
    Prom Ceipi
    Оценок пока нет
  • EXERCICES (Correction)
    EXERCICES (Correction)
    Документ8 страниц
    EXERCICES (Correction)
    miagesdb
    0% (1)
  • Sparql
    Sparql
    Документ6 страниц
    Sparql
    Anderson Nguetoum
    Оценок пока нет
  • CV Developpeur Front 1
    CV Developpeur Front 1
    Документ1 страница
    CV Developpeur Front 1
    Mohamed16 labbou
    Оценок пока нет
  • Glossaire Des Balises HTML
    Glossaire Des Balises HTML
    Документ7 страниц
    Glossaire Des Balises HTML
    Theophile Kafando
    Оценок пока нет
  • TP 2
    TP 2
    Документ6 страниц
    TP 2
    radandi djamra
    Оценок пока нет
  • Exe12 XML Solution
    Exe12 XML Solution
    Документ4 страницы
    Exe12 XML Solution
    rhita_tita
    Оценок пока нет
  • S1 Balises HTML
    S1 Balises HTML
    Документ9 страниц
    S1 Balises HTML
    Driss Essaadi
    Оценок пока нет
  • Chapitre 1 - XML
    Chapitre 1 - XML
    Документ14 страниц
    Chapitre 1 - XML
    Saf Bes
    Оценок пока нет
  • 3 JSF
    3 JSF
    Документ27 страниц
    3 JSF
    GANGO Abdoul-Ahmed
    Оценок пока нет
  • 2 - DTD
    2 - DTD
    Документ39 страниц
    2 - DTD
    Moufida Jguirim
    Оценок пока нет
  • Cours XML Intro
    Cours XML Intro
    Документ42 страницы
    Cours XML Intro
    Aicha
    Оценок пока нет
  • Corrige DS 2021 2022
    Corrige DS 2021 2022
    Документ3 страницы
    Corrige DS 2021 2022
    mini min
    Оценок пока нет
  • Chap1 XHTML
    Chap1 XHTML
    Документ36 страниц
    Chap1 XHTML
    joel
    Оценок пока нет
  • XML
    XML
    Документ32 страницы
    XML
    Abdallah Maatouk
    Оценок пока нет