La personnalisation d'une balise comprend principalement trois étapes:
1. Écrivez une classe Java et héritez de la classe TagSupport;
2. Créez un fichier TLD et faites allusion au nom de balise et à la classe Java TAG;
3. La page JSP présente TLD.
Exemple: étiquette de boîte déroulante personnalisée
S'il y a une boîte de sélection déroulante sur la page, la meilleure solution consiste généralement à utiliser un dictionnaire de données, car il existe un potentiel pour plusieurs pages
Utilisez la même boîte déroulante pour faciliter la maintenance unifiée en arrière-plan.
Classe de balises personnalisée
Importer java.io.ioException; Importer javax.servlet.jsp.jspException; import javax.servlet.jsp.jspwriter; import javax.servlet.jsp.tagext.tagsupport; public class dictionaryoptionTaget étend tagsupport {index privé final final final sterialuid = 1L; index privé; // Index de champ, la valeur remontée par l'attribut de balise sur la page @SuppressWarnings ("Unchecked") @ OverRidepublic int doendtag () lève jspException {jspwriter jspw = this.pageContex ("Sex" .Equals (index)) {OptionS.APPEND ("<Option Value = ''> - Veuillez sélectionner - </opoption>"); OptionS.APPEND ("<Option Value = '1'> mâle </opoption>"); Options.Apnd ("<option Value = '0'> Femme </ Option>");} essayez {jspw.println (options); // output} catch (ioException e) {e.printStackTrace ();} return 0;} @ OverRidePublic int dostarttag () lève JSPException {return 0;} public String getIndex () {return index;Définir TLD
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Taglibpublic "- // Sun Microsystems, Inc.//dtd JSP Tag Library 1.2 // en "" http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd "> <gaglib> ion> <jsp-version> 1.2 </ jsp-version> <mefr-name> tagsample </frold-name> <uri> / hellotag </urri> <ag> <! - Consultez une liste d'options à partir du dictionnaire de données -> <nom> OptionDictionary </name> <gag-class> com.itmyhome.dictionaryoptiontaget </tag-class> <body-Contin> vide </ body-contend> </attribut> <name> index </ name> <! - Field Index Name -> </dited> </dited> <! - Index </ Name> <! requis -> <rtexprValue> false </ rtexprValue> <! - Si cela peut transmettre la valeur dans $ {} -> </attribute> </gaglib>Il convient de noter que: Lorsque <rtexprValue> true </rtexprValue>, vous pouvez utiliser des expressions JSP
La valeur d'attribut indiquant que la balise personnalisée peut être transmise dynamiquement dans $ {}.
Utiliser des balises personnalisées
<% @ taglib uri = "/ web-tag / plateforme.tld" prefix = "pf"%> <lect> <pf: optionDictionary index = "sexe" /> </ select>
Sortie de la page:
Struts2 Tag-Two Ways to Writing List Drop-Down
La première façon d'écrire
<s: set name = "selist" value = "# {'1': 'Quality', '2': 'Cost', '3': 'progress'}"> </ s: set> <s: select list = "# selist" listkey = "key" listValue = "value" name = "columnname"La deuxième façon d'écrire:
<s: sélectionnez name = "colnumnname" list = "{'Quality', 'Cost', 'Progress'}" headerKey = "- 1" Herevalue = "- Veuillez sélectionner -" videOption = "true" multiple = "false" />