A personalização de uma tag inclui principalmente três etapas:
1. Escreva uma classe Java e herde a classe TagSupport;
2. Crie um arquivo TLD e alude ao nome da tag e tag Java Class;
3. A página JSP apresenta TLD.
Exemplo: etiqueta de caixa suspensa personalizada
Se houver uma caixa de seleção suspensa na página, a melhor solução é geralmente usar um dicionário de dados, pois há potencial para várias páginas
Use a mesma caixa suspensa para facilitar a manutenção unificada em segundo plano.
Classe de tag personalizada
importar java.io.ioException; importar javax.servlet.jsp.jspexception; importar javax.servlet.jsp.jspwriter; importar javax.servlet.jsp.tagext.tagsupport; classe pública dictionyOptionTaget Extndends) // Índice de campo, o valor passou de volta através do atributo de tag na página @suppresswarnings ("desmarcada") @substituirpublic int doendTag () lança JSPException {jspwriter jspw = this.pagecontext.getout (); a opção de stringbuffer cujo stringAfffer (); ("Sexo" .equals (índice)) {options.append ("<opção value = ''>-selecione-</ppthment>"); options.append ("<opção value = '1'> masculino </ppthment>"); options.append ("option value = '0'> feminino </option>");} tentativa {jspw // output} catch (ioexception e) {e.printStackTrace ();} retornar 0;}@substituirpublic int DastartTag () lança jspException {return 0;} public string getIndex () {retornar index;} public void (string index) {this.index = index;Defina TLD
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype taglibpublic "-// Sun Microsystems, Inc.//dtd JSP Tag Library 1.2 // pt "" http://java.sun.com/dtd/web-jsptaGlibrary_1_2.dtd "> <taglib> <tlib-version> 1.0 </tlib-vers Ion> <Jsp-Version> 1.2 </nsp-version> <sthname> tagsample </hort-name> <uri>/hellotag </uri> <tag> <!- Confira uma lista de opções do dicionário de dados-> <name> optionDictionary </name> <sk-Class> com.itmyhome.dictionaryOptionTaget </tag-class> <body-content> vazio </body-content> <! Necessário-> <rtexprValue> false </rtexprValue> <!-se ele pode passar o valor em $ {}-> </titribute> </aglib>Deve -se notar que: quando <rtexprValue> true </rtexprValue>, você pode usar expressões JSP
O valor do atributo indicando que a tag personalizada pode ser passada dinamicamente em $ {}.
Use tags personalizadas
<%@ taglib uri = "/web-tag/plataform.tld" prefix = "pf"%> <select> <pf: optionDictionary index = "sexo"/> </leclect>
Saída de página:
Struts2 Tag-duas maneiras de escrever lista suspensa
A primeira maneira de escrever
<s: set name = "Sellist" value = "# {'1': 'Quality', '2': 'Cost', '3': 'Progress'}"> </s: Set> <s: selecione List = "# Sellist" ListKey = "key" ListValue = "Value" Name = "ColumnName" HeaderKey = "0"A segunda maneira de escrever:
<s: selecione name = "columnName" list = "{'Quality', 'Cost', 'Progress'}" headerkey = "-1" headerValue = "-selecione-" emailption = "true" múltiplo = "false"/>