Personalizar una etiqueta incluye principalmente tres pasos:
1. Escribe una clase Java y herede la clase TagSupport;
2. Cree un archivo TLD y alude al nombre de la etiqueta y la clase Java de la etiqueta;
3. La página JSP presenta TLD.
Ejemplo: etiqueta de cuadro desplegable personalizado
Si hay un cuadro de selección desplegable en la página, la mejor solución generalmente es usar un diccionario de datos, ya que hay potencial para múltiples páginas
Use el mismo cuadro desplegable para facilitar el mantenimiento unificado en el fondo.
Clase de etiqueta personalizada
import java.io.ioException; import javax.servlet.jsp.jspexception; import javax.servlet.jsp.jspwriter; import javax.servlet.jsp.tagext.tagSupport; private dictionaryOptionTaget extiende tagSupport {private estatic estatic final serialversionUid = 1l; string privado Índice; // índice de campo, el valor retrocedido a través del atributo de etiqueta en la página @SupessWarnings ("no verchado") @overridePublic int doendtag () lanza jspexception {jspwriter jspw = this.pageContext.getOut (); stringBuffer options = new StringBuffer ();/*** Necesita que sea la opción cuya opción de datos Database es sexo, es sexo, es sexo, es sexo que es sexo. ("Sex" .equals (index)) {options.append ("<opción valor = ''>-Seleccione-</opción>"); options.append ("<opción valor = '1'> masculino </opción>"); options.append ("<opción valor = '0'> femenino </opción>");} try {jspw.println (opciones); // output} catch (ioException e) {E.PrintStackTrace ();} return 0;}@overRideSpublic int dostartTag () lanza jspException {return 0;} public string getIndex () {Index return;} public void setIndex (índice de cadena) {this.index = index;}}Definir TLD
<? xml versión = "1.0" encoding = "utf-8"?> <! Doctype tagLibpublic "-// Sun Microsystems, Inc.//dtd JSP Library de etiquetas 1.2 // en "" http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd "> <taglib> <tlib-version> 1.0 </tlib-vers ion> <jsp-version> 1.2 </jsp-version> <tort-name> tagSample </ short-name> <Uri>/hellotag </ uri> <tag> <!- Consulte una lista de opciones desde el Diccionario de datos-> <name> opcionDictionary </name> <tag-class> com.itmyhome.DictionaryOptionTaget </tag-class> <body-content> vacío </bodycontent> <tribute> <name> index </name> <!-Nombre del índice de campo-> <requerido> verdadero </requerido> <!-Si es si es requerido-> <rtexprvalue> false </rtexprvalue> <!-si puede pasar el valor en $ {}-> </ attribute> </taglib>Cabe señalar que: cuando <RTEXPrValue> true </rtexprvalue>, puede usar expresiones JSP
El valor de atributo que indica que la etiqueta personalizada se puede pasar dinámicamente en $ {}.
Usar etiquetas personalizadas
<%@ taglib uri = "/web-tag/plataforma.tld" prefix = "pf"%> <select> <pf: optionDictionary index = "sex"/> </select>
Salida de la página:
Struts2 Tag-dos formas de escribir lista desplegable
La primera forma de escribir
<s: set name = "sellist" value = "# {'1': 'Quality', '2': 'Costo', '3': 'Progress'}"> </s: set> <s: select list = "# sellist" listkey = "key" listValue = "value" name = "columnnek" HeadeRey = "0" Headeralue = "-por favor SELECT-"> </S: SEELLa segunda forma de escribir:
<s: select name = "columnName" list = "{'Quality', 'Costo', 'Progress'}" Headerkey = "-1" Headervalue = "-Seleccione-" vacío = "true" múltiple = "falso"/>