project:omega - o'reillynet-fr - jsp-servlets - les librairies jsp de balises personnalisées

project:omega - o'reillynet-fr - jsp-servlets - les librairies jsp de balises personnalisées livres et documentations outils téléchargements d'outils unix programmation cocoa serveurs web le terminal de mac os x le langage java carbon nouvelles mac dev objective-c iapplications le langage jsp et les servlets java technologie sans-fil le scripting système unix mozilla développer sur mac os x perl-ruby-python intégration mac os x - windows développement web maîtrise de mac os x guides techniques développement développement web le langage ruby portage d'applications vers mac os x webobjects meilleures astuces sélections logiciel de la semaine conchyo firestarter - gravure et copie de cd reveil documentation o'reillynet-fr tutoriels macosxhints-fr produits forums liens qui sommes-nous ? contribuer et participer soutenir l'association recevoir la news letter les statuts de l'association note : 2.000 expert (436 ko) 7144 1 - 2 dans la même série sommaire conseils pratiques pour servlet, partie 3 conseils pratiques pour servlet, partie 2 conseils pratiques pour servlet, partie 1 apprentissage de struts jakarta - partie 3 apprentissage de struts jakarta - partie 2 introduction à struts jakarta tour d’horizon des jsp - partie 1 les librairies jsp de balises personnalisées fonctions avancées des librairies jsp de balises personnalisées les derniers articles parus o'reillynet-fr-système unix ssh en détails, partie 2 o'reillynet-fr-maîtrise de mac os x qu'est ce que le firewire ? (et comment en tirer profit) tutoriels-développement vue d'ensemble de l'accessibilité o'reillynet-fr-maîtrise de mac os x mac os x pour le voyageur, partie 5 o'reillynet-fr-maîtrise de mac os x mac os x pour le voyageur, partie 4 tous les articles parus les dernières astuces osxfaq semaine 106 - nouveautés de tiger 06/01/2006 - vendredi - bien propre avec tidy 05/01/2006 - jeudi - encore plus de commandes 04/01/2006 - mercredi - syntaxe colorée dans nano 03/01/2006 - mardi - pico devient nano 02/01/2006 - lundi - de zcat à gzcat toutes les astuces parues nos articles « coup de coeur » portage d'applications vers mac os x-portage d'applications basées sur l'api win32 vers mac os x portage d'applications vers mac os x-guide de portage unix webobjects-qu'est-ce que webobjects ? développement-les outils de développement de mac os x développement-apprendre l'objective-c livres recommandés servlets et jsp java in a nutshell - o'reilly introduction à java - o'reilly exemples en java in a nutshell, 2e édition - o'reilly thinking in java total java mac os x à 200% project:omega soutient mozilla ! project:omega soutient openoffice ! 1 - 2 project:omega >>> o'reillynet-fr >> le langage jsp et les servlets java > les librairies jsp de balises personnalisées concevoir des librairies jsp de balises personnalisées par sue spielman, 19/04/2001 traduit par thierry, 20/08/2002   dans cet article vous allez découvrir :   ce qu'est une librairie de balises personnalisées, les raisons qui pourraient vous pousser à utiliser de telles librairies, la composition d'une librairie de balises et, comment construire et utiliser une librairie complète. ce qu'est une librairie de balises personnalisées si vous avez déjà eu l'opportunité de bâtir une application web reposant sur une technologie java, il y a de fortes chances que vous ayez utiliser des java server pages (jsp) pour l'affichage du contenu. jsp est la technologie qui permet de séparer la présentation de type front-end (ndt : gestion de l'interface utilisateur) de celle de type middle ou back-end (ndt : gestion des données). la librairie de balises personnalisées est une fonctionnalité puissante de jsp v1.1 qui aide à effectuer cette séparation. cette technologie est valable pour quiconque développe des applications web de qualité professionnelle et elle très applicable au marché actuel. les librairies de balises personnalisées permettent au programmeur java d'écrire du code qui permet l'accès aux données et à d'autres services et, elles rendent ces fonctionnalités utilisables par l'auteur jsp de manière simple et semblable au xml. une action dans une application web -- par exemple, gagner l'accès aux données -- peut être customisée (personnalisée) en utilisant une balise personnelle dans une page jsp. l'auteur jsp n'a pas à comprendre le détail sousjacent pour accomplir cette action. en résumé, une librairie de balises est une collection d'actions personnelles, chacune étant représentée par une balise.   les balises personnalisées ont beaucoup de fonctionnalités qui les rendent attractives à utiliser à partir de n'importe quelle jsp. elles peuvent :   être customisées par des attributs passés à partir de la page appelante, que ce soit de manière statique ou déterminée lors de l'exécution; avoir accès à tous les objets disponibles de la page, y compris les requêtes, les réponses, les entrées et les sorties; modifier la réponse générée par la page appelante; communiquer entre elles; vous pouvez créer et initialiser un composant javabeans, créer une variable qui fait référence à ce "bean" dans une balise, et utiliser le "bean" dans une autre balise; être emboîtées les unes dans les autres, permettant des interactions complexes au sein d'une page jsp; et contenir à la fois des comportements simples et complexes grace à une syntaxe simple à utiliser et qui simplifie grandement la lisibilité des pages jsp.   chacun de ces points est une raison suffisante qui justifie l'usage de librairies de balises. voyons ce qui constitue une librairie de balises et construisons en une étape par étape. la composition d'une librairie de balises il y a deux types de composants dans une librairie de balises : le fichier descriptif et les gestionnaires de balise. avec ces composants, une page jsp est capable de se servir, en son sein, de balises contenues dans la librairie. le fichier tld un fichier descriptif de librairie de balises (tag library descriptor) est un document xml qui décrit la librairie. un tld contient des informations relatives à la librairie elle-même et à chaque balise contenu dans la libraire. les tld sont utilisés par un container jsp pour valider les balises. typiquement, il y a des informations d'en-tête suivies par des éléments dont le but est de définir la librairie. les éléments sont :   <taglib> la librairie de balise elle-même. <tlibversion> la version de la librairie de balise. <jspversion> la version des spécifications jsp dont dépent la librairie de balise. <shortname> un nom simple par défaut avec une valeur mnemonic. par exemple, <shortname> peut être utilisé en tant que préfixe préféré dans les directives taglib et/ou pour créer des préfixes aux ids. <uri> une uri optionnelle qui identifie de manière unique la librairie. <info> informations descriptives.   puis, chaque balise contenue dans la librairie est décrite. il peut y avoir une ou plusieurs balises par librairie. il n'y a qu'un seul élément de tld requis pour toutes les balises, et c'est celui utilisé pour spécifier une classe de gestionnaire de balise : <tagclass>classname</tagclass> il y a de nombreux autres éléments utilisés pour décrire les balises. une balise se servira de tel ou tel élément en fonction de son implémentation dans le gestionnaire. si une balise est associée à des attributs, alors chaque attribut doit être décrit à l'intérieur de l'élément <tag>. si un attribut est requis par une balise, <required> est positionné à "true" ou"yes". pour permettre l'utilisation de la résultante d'une expression évaluée lors de l'exécution, le <rtexpvalue> est positionné à "true" ou "yes". pour chaque attribut d'une balise, une méthode getter/setter dans le style "bean" doit être définie dans la classe du gestionnaire. il est aussi possible de définir des variables, utilisables dans une balise, pouvant répondre à des scripts. cela s'accomplit en se servant d'une classe tagextrainfo et sera discuté dans la section relative au gestionnaire de balise. si une tagextrainfo doit être utilisée, la classe doit être définie en se servant de <teiclass>classname<teiclass> au sein même de la définition de la balise.   un extrait de tld nommé oreillysample.tld ressemble à ceci : <?xml version="1.0" encoding="iso-8859-1" ?> <!doctype taglib public "-//sun microsystems, inc.//dtd jsp tag library 1.1//en" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>oreillysamples</shortname> <info>oreilly sample tag library</info> <!-a simple tag --> <tag> <name>hello</name> <tagclass>oreilly.examples.hello </tagclass> <!--le contenu du corps peut avoir une valeur vide : pas de corps jsp: corps évalué par le container, puis traité éventuellement par la balise tagdependent: le corps n'est traité que par la balise; le jsp n'est pas évalué. --> <bodycontent>empty</bodycontent> <info> this is a simple hello tag. </info> <!-- optional attributes --> <!- personalized name --> <attribute> <name>name</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> </taglib> le gestionnaire de balises la balise est définie dans la classe gestionnaire. tagsupport est la classe de base utilisée pour les balises simples. elle peut être localisée dans le package javax.servlet.tagext. ce que votre balise implémente dépendra des méthodes qui pourront potentiellement être appelées et de celles qui nécessitent d'être implémentées. tagsupport et tagbodysupport fournissent les implémentations par défaut des méthodes listées ci-dessous.   si votre gestionnaire de balise : vous devez implémenter les méthodes suivantes : n'a pas d'attribut et de corps dostarttag, doendtag, release a des attributs dostarttag, doendtag, set/getattribute1...n a un corps sans interaction dostarttag, doendtag, release a un corps avec interaction dostarttag, doendtag, release, doinitbody, doafterbody   une fonctionnalité plus avancée consiste à utiliser des variables programmables. typiquement, un attribut contenant l'identifiant (id) de l'objet à utiliser est passé à la balise. l'opération habituelle consiste en la récupération, par le gestionnaire de balises, de l'objet valeur d'une variable programmable en utilisant pagecontext.getattribute(name), suivie de quelques traitements effectués sur l'objet puis du positionnement de la valeur de la variable programmable par l'utilisation de pagecontext.setattribute(name, object). en plus de positionner la valeur de la variable à l'intérieur du gestionnaire de balises, vous devez définir une classe dérivée de tagextrainfo dont le but sera de fournir des informations au container jsp relatives à la nature de la variable. cette classe est alors listée dans l'attribut <teiclass> de la balise.   le code java défini dans le fichier tld oreillysample.tld ressemblerait à : package oreilly.examples import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; /** * ceci est l'exemple d'une simple balise dont le but est de montrer * comment est ajouté le flux de sortie quand une balise est rencontrée * dans une page jsp */ public class hello extends tagsupport { private string name=null; /** * getter/setter pour l'attribut "name" tel que défini dans le fichier tld * pour cette balise */ public void setname(string value){ name = value; } public string getname(){ return(name); } /** * dostarttag est appelé par le container jsp quand la balise est rencontrée */ public int dostarttag() { try { jspwriter out = pagecontext.getout(); out.println("<table border=\"1\">"); if (name != null) out.println("<tr><td> hello " + name + " </td></tr>"); else out.println("<tr><td> hello world </td></tr>"); } catch (exception ex) { throw new error("tout n'est pas génial dans ce monde."); } // doit retourner skip_body car nous ne supportons pas de de corps pour cette balise. return skip_body; } /** * doendtag est appelé par le container jsp quand la balise est fermée */ public int doendtag(){ try { jspwriter out = pagecontext.getout(); out.println("</table>"); } catch (exception ex){ throw new error("tout n'est pas génial dans ce monde."); } } }   page suivante : le jsp.     project:omega : la référence pour les développeurs mac os x et plus encore ! documentation  |  o'reillynet-fr  |  tutoriels  |  macosxhints-fr  |  produits  |  forums  |  liens copyright © 2001-2004 projectomega.org, association à but non lucratif. tous droits réservés. toutes les marques déposées et tous les logos apparaissant sur projectomega.org sont la propriété de leurs sociétés respectives. pour tout problème ou assistance à propos de ce site, contactez : webmaster@projectomega.org pour tout autre propos : contact@projectomega.org hosting : netsample.net | macgeneration.com | projectomega.com - design : projectomega.com

project:omega - o'reillynet-fr - jsp-servlets - les librairies jsp de balises personnalisées  Précédent 514  Précédent 513  Précédent 512  Précédent 511  Précédent 510  Précédent 509  Précédent 508  Précédent 507  Précédent 506  Précédent 505  Précédent 504  Précédent 503  Précédent 502  Précédent 501  Précédent 500  Précédent 499  Précédent 498  Précédent 497  Précédent 496  Précédent 495  Précédent 494  Précédent 493  Précédent 492  Précédent 491  Précédent 490  Précédent 489  Précédent 488  Précédent 487  Précédent 486  Précédent 485  Suivant 516  Suivant 517  Suivant 518  Suivant 519  Suivant 520  Suivant 521  Suivant 522  Suivant 523  Suivant 524  Suivant 525  Suivant 526  Suivant 527  Suivant 528  Suivant 529  Suivant 530  Suivant 531  Suivant 532  Suivant 533  Suivant 534  Suivant 535  Suivant 536  Suivant 537  Suivant 538  Suivant 539  Suivant 540  Suivant 541  Suivant 542  Suivant 543  Suivant 544  Suivant 545