jsp tags - fmt - Biblioteca de etiquetas personalizadas JSP(Passing Attributes)
jstl java (3)
Intento usar múltiples atributos en mi etiqueta personalizada, por ejemplo:
<mytaglib:mytag firstname="Thadeus" lastname="Jones" />
¿Cómo puedo acceder a los atributos en el código TagHandler?
En realidad no es la respuesta a lo que me pediste, pero odio (es decir, nunca he escrito) TagHandler pero me encantan los archivos de etiquetas . Le permite escribir etiquetas personalizadas usando archivos jsp. Probablemente los conozcas y no estén disponibles / aplicables, pero pensé que los mencionaría por si acaso.
Para acceder a los parámetros, su clase TagHandler debe definir los miembros privados y proporcionar métodos de acceso.
public class TagHandler extends TagSupport {
private String firstName;
private String lastName;
public void setFirstName(String firstname) { firstName = firstname; }
public void setLastName(String lastname) { lastName = lastname;}
}
a continuación, puede acceder a los parámetros a través de las variables TagHandler.
public int doStartTag() throws JspException {
pageContext.getOut().print(lastName + ", " + firstName);
}
Si todavía tiene problemas, revise sus convenciones de nombres, el intérprete de Java intenta adivinar cuál es el método setter. Entonces, si su parámetro es "FirstName", el método set debe ser "setFirstName" si el parámetro es "lastname", el parámetro set debe ser "setlastname". Me permito seguir el anterior, ya que es la convención estándar de nomenclatura de Java.
Para demostrar la solución de este problema, tomemos una analogía. Supongamos que tenemos "nombre de usuario" y "contraseña" que se recupera de index.jsp y tenemos que pasar nuestros datos en el atributo de etiqueta personalizada. En mi caso, funciona
<body>
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
%>
<%@ taglib prefix="c" uri="/WEB-INF/mytag.tld" %>
<c:logintag name="<%=name %>" password="<%=password %>"/>